Skip to content

Stabilize skip-crash baseline CI and restore build tooling#34

Merged
kyleCheng56 merged 1 commit into
HuaweiCloudDeveloper:mainfrom
WinterStarHu:main
Apr 30, 2026
Merged

Stabilize skip-crash baseline CI and restore build tooling#34
kyleCheng56 merged 1 commit into
HuaweiCloudDeveloper:mainfrom
WinterStarHu:main

Conversation

@DayuanX
Copy link
Copy Markdown

@DayuanX DayuanX commented Apr 29, 2026

Summary

  • Restore the repository build path by moving build.cs to the public dotnet-execute API and pinning dotnet-execute with a local tool manifest.
  • Keep GitHub Actions on the supported net8.0 baseline and update workflow actions to current Node 24-capable versions.
  • Stabilize openGauss baseline CI with explicit, documented VSTest filters instead of source-level profile switches.
  • Add build-script test profiles:
    • ci-baseline is selected automatically on GitHub Actions.
    • local-product can be selected locally with GAUSSDB_TEST_PROFILE=local-product for remote single-node GaussDB validation.
  • Fix NativeAOT CI so both full and trimmed jobs run against the intended openGauss service.
  • Update OpenTelemetry.Api to avoid NuGet audit failure on GitHub Actions.

Test Filtering Strategy

  • CI baseline filters these known environment or fork-drift cases:
    • SecurityTests: the openGauss CI service does not provide backend SSL.
    • Replication: CI does not provision logical replication prerequisites.
    • Open_physical_failure: current fork behavior expects TimeoutException while upstream expects SocketException; keep isolated until the fork drift is reviewed.
    • BaseColumnName_with_column_aliases: fixed temp table name can survive pooled sessions and fail with 42P07 relation already exists.
  • Local GaussDB local-product profile filters only cases that are not valid for the current remote single-node product test topology:
    • Open_physical_failure
    • BaseColumnName_with_column_aliases
    • MultipleHostsTests.IntegrationTest
    • Multiple_hosts_with_disabled_sql_rewriting
  • Local replication tests are not manually filtered. They rely on the existing test setup checks and Assert.Ignore when wal_level or max_wal_senders is not provisioned locally.

Build and Workflow Changes

  • build.sh now restores and runs the pinned local dotnet-exec tool.
  • build.cs defaults to the publish path when no target is passed, keeping manual/release build behavior aligned.
  • Workflow actions were updated across build, test, release, NativeAOT, CodeQL, and rich-code-nav workflows.
  • The openGauss test service health check now waits for a real gsql SELECT 1 instead of a fixed sleep.
  • The test workflow keeps GAUSSDB_TEST_FILTER readable as multiline YAML and joins it with & before passing it to VSTest.

Remote GaussDB Local Test

  • Added docs/remote-gaussdb-local-testing.md with the local remote-server test procedure.
  • The document covers remote server prerequisites, disposable database creation, NPGSQL_TEST_DB, GAUSSDB_TEST_PROFILE=local-product, test startup, cleanup, and replication-test behavior.
  • The example intentionally uses placeholders and does not include any local credentials.

Validation

  • PR head 4d20ddfa CI is green: Build, Test, NativeAOT full, NativeAOT trimmed, and CodeQL all pass.
  • Local build validation passes with .NET 8 runtime available through the user-local dotnet install:
    • dotnet tool run dotnet-exec ./build.cs --args --target=build
  • Local GaussDB product-profile validation passes against a disposable test database:
    • GAUSSDB_TEST_PROFILE=local-product
    • GaussDB.Tests: 3090 total / 2592 passed / 498 skipped / 0 failed
    • GaussDB.DependencyInjection.Tests: 26 total / 26 passed / 0 failed

Notes

  • No test-reports artifacts are included in this PR.
  • The broad SecurityTests CI exclusion is intentionally limited to baseline CI; SSL coverage remains available in local GaussDB runs.

* Skip openGauss crash-prone baseline tests

* Enable replication test sources on skip-crash branch

* Skip replication tests in openGauss CI baseline

* Align CI workflows with net8 baseline

* Fix build script and modernize CI actions

* Run NativeAOT trimmed test against openGauss baseline

* Upgrade CodeQL workflow to v4

* Declare manual build mode for CodeQL

* Tidy baseline test workflow filters

* Fix bash line continuations in test workflow

* Harden release and CI build workflows

* Pin dotnet-execute to net8-capable baseline

* Narrow baseline test exclusions

* Update OpenTelemetry API package

* Refine baseline test profile skips

* Refine test profiles for baseline and local GaussDB

* Document local product test exclusions

* Let local replication tests self-skip

* Document remote GaussDB local testing
Comment thread test/GaussDB.Tests/AutoPrepareTests.cs
Copy link
Copy Markdown

@WeihanLi WeihanLi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks

@kyleCheng56 kyleCheng56 merged commit 0bf3109 into HuaweiCloudDeveloper:main Apr 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants