agora inbox for pgsql-hackers@postgresql.orghelp / color / mirror / Atom feed
[PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements 484+ messages / 2 participants [nested] [flat]
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 484+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 484+ messages in thread
* [PATCH v1] Prevent crash when calling pgstat functions with unregistered stats kind @ 2026-07-01 05:43 Bertrand Drouvot <bertranddrouvot.pg@gmail.com> 0 siblings, 0 replies; 484+ messages in thread From: Bertrand Drouvot @ 2026-07-01 05:43 UTC (permalink / raw) If a custom statistics extension is loaded via CREATE EXTENSION without being listed in shared_preload_libraries, its _PG_init() skips the call to pgstat_register_kind(). The SQL functions are still created, and calling them invokes pgstat functions with a kind that was never registered. pgstat_get_kind_info() returns NULL in this case. The existing code only checked this via Assert() in some paths, so non-assert builds would dereference NULL and segfault. Add runtime checks in all public-facing pgstat functions that accept a PgStat_Kind and dereference the returned kind info: - pgstat_prep_pending_entry() - pgstat_fetch_entry() - pgstat_reset() - pgstat_reset_of_kind() - pgstat_have_entry() - pgstat_snapshot_fixed() - pgstat_init_entry() - pgstat_reset_entry() Each now raises ERROR with ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE when the kind is not known or registered. This affects any extension using the custom cumulative statistics API introduced in PG18. Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com> Reviewed-by: Discussion: --- src/backend/utils/activity/pgstat.c | 45 ++++++++++++++++++++--- src/backend/utils/activity/pgstat_shmem.c | 13 ++++++- 2 files changed, 52 insertions(+), 6 deletions(-) 100.0% src/backend/utils/activity/ diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c index c4fa14f138f..5180201c4e8 100644 --- a/src/backend/utils/activity/pgstat.c +++ b/src/backend/utils/activity/pgstat.c @@ -885,8 +885,13 @@ pgstat_reset(PgStat_Kind kind, Oid dboid, uint64 objid) const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); TimestampTz ts = GetCurrentTimestamp(); + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); + /* not needed atm, and doesn't make sense with the current signature */ - Assert(!pgstat_get_kind_info(kind)->fixed_amount); + Assert(!kind_info->fixed_amount); /* reset the "single counter" */ pgstat_reset_entry(kind, dboid, objid, ts); @@ -907,6 +912,11 @@ pgstat_reset_of_kind(PgStat_Kind kind) const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); TimestampTz ts = GetCurrentTimestamp(); + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); + if (kind_info->fixed_amount) kind_info->reset_all_cb(ts); else @@ -967,6 +977,11 @@ pgstat_fetch_entry(PgStat_Kind kind, Oid dboid, uint64 objid, bool *may_free) void *stats_data; const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); + /* should be called from backends */ Assert(IsUnderPostmaster || !IsPostmasterEnvironment); Assert(!kind_info->fixed_amount); @@ -1088,8 +1103,15 @@ pgstat_get_stat_snapshot_timestamp(bool *have_snapshot) bool pgstat_have_entry(PgStat_Kind kind, Oid dboid, uint64 objid) { + const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); + + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); + /* fixed-numbered stats always exist */ - if (pgstat_get_kind_info(kind)->fixed_amount) + if (kind_info->fixed_amount) return true; return pgstat_get_entry_ref(kind, dboid, objid, false, NULL) != NULL; @@ -1104,8 +1126,15 @@ pgstat_have_entry(PgStat_Kind kind, Oid dboid, uint64 objid) void pgstat_snapshot_fixed(PgStat_Kind kind) { + const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); + + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); + Assert(pgstat_is_kind_valid(kind)); - Assert(pgstat_get_kind_info(kind)->fixed_amount); + Assert(kind_info->fixed_amount); if (force_stats_snapshot_clear) pgstat_clear_snapshot(); @@ -1310,9 +1339,15 @@ PgStat_EntryRef * pgstat_prep_pending_entry(PgStat_Kind kind, Oid dboid, uint64 objid, bool *created_entry) { PgStat_EntryRef *entry_ref; + const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); + + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); /* need to be able to flush out */ - Assert(pgstat_get_kind_info(kind)->flush_pending_cb != NULL); + Assert(kind_info->flush_pending_cb != NULL); if (unlikely(!pgStatPendingContext)) { @@ -1327,7 +1362,7 @@ pgstat_prep_pending_entry(PgStat_Kind kind, Oid dboid, uint64 objid, bool *creat if (entry_ref->pending == NULL) { - size_t entrysize = pgstat_get_kind_info(kind)->pending_size; + size_t entrysize = kind_info->pending_size; Assert(entrysize != (size_t) -1); diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index 5ea3f1973f9..4e6a556af93 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -318,6 +318,11 @@ pgstat_init_entry(PgStat_Kind kind, PgStatShared_Common *shheader; const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); + /* * Initialize refcount to 1, marking it as valid / not dropped. The entry * can't be freed before the initialization because it can't be found as @@ -1127,8 +1132,14 @@ void pgstat_reset_entry(PgStat_Kind kind, Oid dboid, uint64 objid, TimestampTz ts) { PgStat_EntryRef *entry_ref; + const PgStat_KindInfo *kind_info = pgstat_get_kind_info(kind); + + if (unlikely(kind_info == NULL)) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("statistics kind %u is not known or registered", kind))); - Assert(!pgstat_get_kind_info(kind)->fixed_amount); + Assert(!kind_info->fixed_amount); entry_ref = pgstat_get_entry_ref(kind, dboid, objid, false, NULL); if (!entry_ref || entry_ref->shared_entry->dropped) -- 2.34.1 --jlSGGOUQ0kGWBHE+-- ^ permalink raw reply [nested|flat] 484+ messages in thread
end of thread, other threads:[~2026-07-01 05:43 UTC | newest] Thread overview: 484+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-07-01 05:43 [PATCH v1] Prevent crash when calling pgstat functions with unregistered stats kind Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox