Repository navigation
Closed
Labels
Description
Problem
PR CI runs only a small part of the feature suite, so a feature test can break on main after a PR merges green. Today #1092 (#870) did exactly that: V2WorkflowTest::testActivityHeartbeatBackfillsLegacyCurrentAttemptIdentity still expected the old heartbeat event, failed only in main's feature-mysql/feature-postgresql shards, and held the 2.24.0 tag (fixed in #1094). #1074's unit test broke main the same way, which #1082 closed for the unit suite.
What pr-feature-mysql runs today (.github/pr-test-selection.json, scripts/ci/select-pr-tests.php):
- four smoke methods (
V2TaskDispatchTest,V2UpdateWorkflowTest,V2QueryWorkflowTest,V2ActivityArgumentCodecTest, one method each) - feature test files the PR itself changes, up to a 120 s budget
Everything else runs only on push to main. That is 161 feature files, about 2,960 s on MySQL with coverage.
Plan
- Measure the full feature suite on PRs without coverage, on SQLite with the Redis service that
pr-unitalready uses, split into 3 shards. Target: no PR job over ~12 minutes, which is about today's PR wall time withpr-unit. - If that fits, add it as a required PR job (like
pr-unitin Run the full unit suite on pull requests #1082), keeping MySQL/PostgreSQL/MariaDB coverage shards onmain. Database-specific behavior still getspr-feature-mysqlsmoke plus changed files. - If it doesn't fit, fall back to impact selection: also run feature files that reference classes changed under
src/, with a larger PR budget.
Owner: Workflow.
Feature files that PR CI currently skips unless the PR changes them
tests/Feature/ActivityCompletionWakeTest.phptests/Feature/ActivityDispatchBoundaryTest.phptests/Feature/AiWorkflowTest.phptests/Feature/AsyncWorkflowTest.phptests/Feature/AwaitWithTimeoutWorkflowTest.phptests/Feature/AwaitWorkflowTest.phptests/Feature/Base64WorkflowTest.phptests/Feature/ChildWorkflowSignalingTest.phptests/Feature/ConcurrentWorkflowTest.phptests/Feature/ContinueAsNewWorkflowTest.phptests/Feature/ContinuedSignalRetirementTest.phptests/Feature/DatabaseTruncationTest.phptests/Feature/DispatchWorkflowInTransactionTest.phptests/Feature/ExceptionLoggingReplayTest.phptests/Feature/ExceptionWorkflowTest.phptests/Feature/FailingWorkflowTest.phptests/Feature/HeartbeatWorkflowTest.phptests/Feature/MigrationTest.phptests/Feature/NestedSignalRaceConditionTest.phptests/Feature/ParentContinueAsNewChildWorkflowTest.phptests/Feature/ParentWorkflowTest.phptests/Feature/PendingContinuationTimerTest.phptests/Feature/RaceConditionTest.phptests/Feature/RetriesWorkflowTest.phptests/Feature/SagaChildWorkflowTest.phptests/Feature/SagaWorkflowTest.phptests/Feature/SideEffectWorkflowTest.phptests/Feature/SignalReplayTest.phptests/Feature/StateChangedEventTest.phptests/Feature/StateMachineWorkflowTest.phptests/Feature/TimeoutWorkflowTest.phptests/Feature/TimerWorkflowTest.phptests/Feature/V2/ScheduleVisibilityQueryNativeStorageTest.phptests/Feature/V2/ScheduleVisibilityQueryTest.phptests/Feature/V2/TaskQueuePriorityFairnessTest.phptests/Feature/V2/V2ActivityArgumentCodecTest.phptests/Feature/V2/V2ActivityAttemptBudgetTest.phptests/Feature/V2/V2ActivityEntryArgumentsTest.phptests/Feature/V2/V2ActivityExceptionCodecTest.phptests/Feature/V2/V2ActivityLeaseRepairLockTest.phptests/Feature/V2/V2ActivityMetadataProjectionTest.phptests/Feature/V2/V2ActivityOptionsTest.phptests/Feature/V2/V2ActivityOutcomeHistoryRoleTest.phptests/Feature/V2/V2ActivityTaskBridgeTest.phptests/Feature/V2/V2ActivityTimeoutTest.phptests/Feature/V2/V2ArchiveWorkflowTest.phptests/Feature/V2/V2AuthoredActivityRetryReplayTest.phptests/Feature/V2/V2AvroAdapterCodecTest.phptests/Feature/V2/V2AvroParitySuiteTest.phptests/Feature/V2/V2AwaitWorkflowTest.phptests/Feature/V2/V2CallerSuppliedReservationSnapshotTest.phptests/Feature/V2/V2CancellationCascadeViewTest.phptests/Feature/V2/V2CancellationCleanupOutcomeTest.phptests/Feature/V2/V2CancellationRequestConcurrencyTest.phptests/Feature/V2/V2CancellationScopeDeliveryTest.phptests/Feature/V2/V2CancellationScopeDescendantsTest.phptests/Feature/V2/V2CancellationScopeHistoryTest.phptests/Feature/V2/V2CancellationScopeRequestsTest.phptests/Feature/V2/V2ChildCancellationPolicyTest.phptests/Feature/V2/V2ChildTerminalOutcomeTest.phptests/Feature/V2/V2ChildWorkflowExternalOutputReplayTest.phptests/Feature/V2/V2ChildWorkflowNamespaceProjectionTest.phptests/Feature/V2/V2CommandDeadlockRetryTest.phptests/Feature/V2/V2CompatibilityWorkflowTest.phptests/Feature/V2/V2ConfiguredCoreModelsTest.phptests/Feature/V2/V2ContinueAsNewMetadataTest.phptests/Feature/V2/V2CooperativeParentCloseTest.phptests/Feature/V2/V2DefaultConnectionRecoveryTest.phptests/Feature/V2/V2DependencyInjectionTest.phptests/Feature/V2/V2DeterministicTimeReplayTest.phptests/Feature/V2/V2DeterministicTimeTest.phptests/Feature/V2/V2DuplicateStartPolicyTest.phptests/Feature/V2/V2EmbeddedParallelChildConcurrencyTest.phptests/Feature/V2/V2EmbeddedReplayRegressionCorpusTest.phptests/Feature/V2/V2EntryMethodTest.phptests/Feature/V2/V2FailedRunRedrivePlanTest.phptests/Feature/V2/V2FailedRunRedriveTest.phptests/Feature/V2/V2FailureMessageStorageMigrationTest.phptests/Feature/V2/V2FinallyCleanupTest.phptests/Feature/V2/V2GoldenHistoryReplayTest.phptests/Feature/V2/V2HistoryRecordedAtTimezoneTest.phptests/Feature/V2/V2HistoryTimelineTest.phptests/Feature/V2/V2InboxAfterParallelTest.phptests/Feature/V2/V2LeasedSignalDeliveryTest.phptests/Feature/V2/V2LegacyEventCompatibilityTest.phptests/Feature/V2/V2LifecycleEventTest.phptests/Feature/V2/V2LocalActivityTest.phptests/Feature/V2/V2MemoUpsertTest.phptests/Feature/V2/V2MessageCursorContinueAsNewTest.phptests/Feature/V2/V2MessageStreamAuthoringTest.phptests/Feature/V2/V2MessageStreamReplayTest.phptests/Feature/V2/V2NamespaceScopedLoadTest.phptests/Feature/V2/V2NexusCallerDeliveryTest.phptests/Feature/V2/V2NonRetryableFailureTest.phptests/Feature/V2/V2OperatorMetricsTest.phptests/Feature/V2/V2OperatorQueueVisibilityTest.phptests/Feature/V2/V2ParentClosePolicyTest.phptests/Feature/V2/V2PortableCancellationDeliveryTest.phptests/Feature/V2/V2PortableLocalActivityCheckpointTest.phptests/Feature/V2/V2PortableLocalActivityCleanupTest.phptests/Feature/V2/V2PortableLocalActivityControlTest.phptests/Feature/V2/V2PortableLocalActivityOutcomeTest.phptests/Feature/V2/V2PortableLocalActivityPreparationTest.phptests/Feature/V2/V2PortableLocalActivityRecoveryTest.phptests/Feature/V2/V2ProjectionTimestampTimezoneTest.phptests/Feature/V2/V2PrunedHistoryExportTest.phptests/Feature/V2/V2QueryWorkflowTest.phptests/Feature/V2/V2ReplayDiffTest.phptests/Feature/V2/V2ResumeTaskSchedulingTest.phptests/Feature/V2/V2RunDetailViewTest.phptests/Feature/V2/V2RunSummarySortKeyTest.phptests/Feature/V2/V2RunTimerTaskHistoryRoleTest.phptests/Feature/V2/V2SagaWorkflowTest.phptests/Feature/V2/V2ScheduleNamespaceInstanceIdTest.phptests/Feature/V2/V2ScheduleTest.phptests/Feature/V2/V2ScheduleTickBurstTest.phptests/Feature/V2/V2ScheduleTimezoneTest.phptests/Feature/V2/V2SchedulerDegradedModeTest.phptests/Feature/V2/V2ScopedActivityCancellationTest.phptests/Feature/V2/V2ScopedChildCancellationTest.phptests/Feature/V2/V2ScopedLocalControlTest.phptests/Feature/V2/V2ScopedTimerCancellationTest.phptests/Feature/V2/V2ScopedWaitCancellationTest.phptests/Feature/V2/V2SearchAttributeDatetimeRepairTest.phptests/Feature/V2/V2SearchAttributeTest.phptests/Feature/V2/V2ServiceModeParallelChildBarrierTest.phptests/Feature/V2/V2ServiceResponseReplayTest.phptests/Feature/V2/V2SideEffectWorkflowTest.phptests/Feature/V2/V2StandaloneActivityHostTest.phptests/Feature/V2/V2StartNamespaceTest.phptests/Feature/V2/V2StartSearchAttributeTest.phptests/Feature/V2/V2StructuralLimitTest.phptests/Feature/V2/V2TaskDispatchHistoryRoleTest.phptests/Feature/V2/V2TaskDispatchTest.phptests/Feature/V2/V2TaskWatchdogRepairConcurrencyTest.phptests/Feature/V2/V2TerminalReasonDiagnosticsTest.phptests/Feature/V2/V2TimerWorkflowTest.phptests/Feature/V2/V2UpdateBeforeCloseTest.phptests/Feature/V2/V2UpdateTailCheckpointTest.phptests/Feature/V2/V2UpdateWorkflowTest.phptests/Feature/V2/V2UuidWorkflowTest.phptests/Feature/V2/V2VersionWorkflowTest.phptests/Feature/V2/V2WebhookPollAndControlPlaneTest.phptests/Feature/V2/V2WebhookWorkflowTest.phptests/Feature/V2/V2WorkflowControlPlaneTest.phptests/Feature/V2/V2WorkflowEntryArgumentsTest.phptests/Feature/V2/V2WorkflowReplayerTest.phptests/Feature/V2/V2WorkflowRunRetentionCleanupTest.phptests/Feature/V2/V2WorkflowStubContractTest.phptests/Feature/V2/V2WorkflowStubFakeTest.phptests/Feature/V2/V2WorkflowTaskBridgeTest.phptests/Feature/V2/V2WorkflowTest.phptests/Feature/V2/V2WorkflowTimeoutTest.phptests/Feature/V2/V2WorkflowVersionPinningTest.phptests/Feature/V2/WaterlineEngineSourceMysqlReadinessTest.phptests/Feature/V2/WorkflowTaskFailureLivenessTest.phptests/Feature/V2/WorkflowTaskSignalGapLockTest.phptests/Feature/VersionWorkflowTest.phptests/Feature/WebhookWorkflowTest.phptests/Feature/WorkflowPollingTest.phptests/Feature/WorkflowTest.php
Activity
Run the PostgreSQL feature suite on pull requests