Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
4ea9946
feat(axum): prepare per-ID native AWS stores before serving
ChristianPavilonis Nov 10, 2026
a9130af
Merge verified lower-stack CLI and fixture lock fixes
ChristianPavilonis Nov 10, 2026
63892b0
fix(ci): retain ordinary test coverage for stacked PR bases
ChristianPavilonis Nov 10, 2026
48761e3
Merge verified lower-stack namespace and CI fixes
ChristianPavilonis Nov 10, 2026
5c13134
Merge managed demo logging regression alignment
ChristianPavilonis Nov 10, 2026
700f291
fix(test-admin): keep fixture failures out of public logs
ChristianPavilonis Nov 10, 2026
765d54d
Merge native-only scaffold correction into AWS provider stack
ChristianPavilonis Nov 10, 2026
652e324
fix(aws): classify typed SDK connector timeouts as deadlines
ChristianPavilonis Nov 10, 2026
746bfc9
fix(aws): constrain shared types to the pinned SDK cohort
ChristianPavilonis Nov 10, 2026
9a985c9
test(axum): retain early rejection responses during full uploads
ChristianPavilonis Nov 10, 2026
a5ac63a
fix(aws): preserve the pinned SDK behavior-version cohort
ChristianPavilonis Nov 10, 2026
c66f93f
test(aws): keep polling until the fixture is HTTP-ready
ChristianPavilonis Nov 10, 2026
6af442d
Carry authenticated head preparation through native providers
ChristianPavilonis Nov 12, 2026
ac6c77c
Carry prepared-router installation through the review stack
ChristianPavilonis Nov 12, 2026
f161505
Merge current parent repairs into PR 414
ChristianPavilonis Nov 12, 2026
e918171
Keep AWS fixture endpoint alive until the SDK operation completes
ChristianPavilonis Nov 12, 2026
3733482
Retain callback-scope fixture repair in PR 414
ChristianPavilonis Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
push:
branches: [main]
pull_request:

permissions:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

⛏ nitpick: Unrelated whitespace change: the blank line before permissions: was deleted.

contents: read

Expand Down Expand Up @@ -183,6 +182,19 @@ jobs:
if: matrix.suite == 'workspace'
run: cargo test --workspace --all-targets

- name: Native store dependency isolation
if: matrix.suite == 'workspace'
run: bash scripts/check_native_store_dependency_contract.sh

- name: Native AWS provider and startup contracts (loopback only)

@aram356 aram356 Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔧 A new feature-gated test never runs in CI

The axum lib tests never run with any aws-* feature. cargo test --workspace uses default features, the harness's Axum phase uses --features axum,test-utils --all-targets, and line 196 runs only --test native_aws_startup. So native_stores.rs:521 (#[cfg(feature = "aws-dynamodb")] dynamodb_local_ready_and_non_send_deferred_sources_validate_without_polling) runs nowhere, and dynamodb_only_needs_no_local_root… only ever takes its is_err branch.

Fix:

cargo test --offline --locked -p edgezero-adapter-axum --features aws-stores,aws-dynamodb --lib native_stores

(Correction to an earlier version of this comment: tests/production_hosting.rs does run in CI, through scripts/test_integration.sh and the harness's axum,test-utils --all-targets --include-ignored phase. The axum-lifecycle-evidence artifact shows 33 passed, including the new explicit_production_initializer_uses_owned_options_and_prepared_stores.)

if: matrix.suite == 'workspace'
run: |
cargo test --offline --locked -p edgezero-store-aws --no-default-features --features appconfig-agent --lib
cargo test --offline --locked -p edgezero-store-aws --no-default-features --features secrets-manager --lib
cargo test --offline --locked -p edgezero-store-aws --no-default-features --features dynamodb-kv --lib
cargo test --offline --locked -p edgezero-store-aws --all-features --lib
scripts/run_test_nonzero.sh production_runner_loads_envelope_and_real_sdk_secret_before_serving_mixed_stores cargo test --offline --locked -p edgezero-adapter-axum --features aws-stores,test-utils --test native_aws_startup

- name: Bundled demo logging and fallback TCP contracts
if: matrix.suite == 'cli'
run: |
Expand Down Expand Up @@ -224,6 +236,28 @@ jobs:
bash scripts/check_adapter_feature_matrix.sh "${adapter}" native
done

- name: Generated native AWS startup (loopback only)
if: matrix.suite == 'cli'
env:
EDGEZERO_GENERATED_TEST_TARGET_DIR: ${{ github.workspace }}/target
run: scripts/run_test_nonzero.sh --ignored generated_cli_build_features_and_native_aws_startup_are_proven_together cargo test --offline --locked -p edgezero-cli --test native_store_generated_proof

- name: Generated native DynamoDB KV (loopback only)
if: matrix.suite == 'cli'
env:
EDGEZERO_GENERATED_TEST_TARGET_DIR: ${{ github.workspace }}/target
run: scripts/run_test_nonzero.sh --ignored generated_cli_default_off_and_enabled_dynamodb_crud_list_ttl_restart cargo test --offline --locked -p edgezero-cli --test dynamodb_generated_proof

- name: Native AWS integration runner tests
if: matrix.suite == 'cli'
run: node --test scripts/native_aws_test_admin.test.mjs scripts/run_native_aws_integration.test.mjs

- name: Generated native AWS independent service contracts
if: matrix.suite == 'cli'
env:
EDGEZERO_GENERATED_TEST_TARGET_DIR: ${{ github.workspace }}/target
run: node scripts/run_native_aws_integration.mjs

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

❓ A required CI step pulls three container images from the network

run_native_aws_integration.mjs pulls amazon/dynamodb-local, ghcr.io/getmoto/motoserver and public.ecr.aws/aws-appconfig/aws-appconfig-agent at run time, inside the required cli suite. Pinning by digest is good, and the Rust test itself only talks to loopback. But CLAUDE.md says not to write tests that require a network connection, and this makes the whole cli suite depend on three registries' availability and anonymous rate limits.

Should this move to a separate, non-required job, or one with an image cache and retries? Or is this an accepted exception that should be written down?


- name: Verify generated project builds and fallback TCP policy
if: matrix.suite == 'cli'
run: scripts/run_test_nonzero.sh --ignored generated_workspace_compiles cargo test --offline --locked -p edgezero-cli --test generated_project_builds
Expand Down
Loading
Loading