test(cloud): add staging smoke test for recce-cloud upload#1114
Open
test(cloud): add staging smoke test for recce-cloud upload#1114
Conversation
E2E test covering GitHub and RECCE_API_TOKEN upload flows against the staging server. Uses static dbt fixtures (no dbt build needed) and a cleanup trap to delete PR sessions after each run. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
The recce state download/upload/purge tests are no longer needed — state file workflows are separate from the artifact pipeline tested here. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
Remove SMOKE_TEST_GITHUB_REPO secret in favor of hardcoded repo name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
Tests 5-6 cover the --session-name (dev session) and --session-id upload flows. Test 6 reuses the session created by test 5. Both require SMOKE_TEST_API_TOKEN + SMOKE_TEST_ORG + SMOKE_TEST_PROJECT. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
uv sync at the repo root doesn't install the recce_cloud workspace member's entry point. Install from recce_cloud/ like tests-recce-cloud workflow does. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
Match the pattern from tests-recce-cloud.yaml — let uv manage the venv and PATH instead of manually activating. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new GitHub Actions workflow + shell-based E2E smoke test to validate recce-cloud upload against the staging Recce Cloud server, and simplifies the existing dbt cloud smoke test by removing obsolete Recce state operations.
Changes:
- Add
integration_tests/recce_cloud/smoke_test_upload.shto exercise upload flows (GitHub token, API token, session-name/session-id). - Add minimal static dbt artifact fixtures (
manifest.json,catalog.json) to avoid runningdbt buildfor this test. - Add a new CI workflow
.github/workflows/upload-smoke-test.yamland remove obsoleterecce cloud download/purge/uploadsteps fromintegration_tests/dbt/smoke_test_cloud.sh.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
integration_tests/recce_cloud/smoke_test_upload.sh |
New staging smoke-test script covering multiple auth/session upload flows. |
integration_tests/recce_cloud/fixtures/minimal-target/manifest.json |
Minimal dbt manifest fixture for upload tests. |
integration_tests/recce_cloud/fixtures/minimal-target/catalog.json |
Minimal dbt catalog fixture for upload tests. |
integration_tests/dbt/smoke_test_cloud.sh |
Removes obsolete Recce state operations from existing cloud smoke test. |
.github/workflows/upload-smoke-test.yaml |
New workflow to run the upload smoke test in CI with authorization gating. |
Expand upload smoke test from 6 to 9 tests: - Test 3: Download PR session via platform auto-detect, verify artifacts - Test 8: Upload session-base artifacts (--session-base flag) - Test 9: Download dev session via --session-id, verify round-trip Also documents that SMOKE_TEST_ORG/SMOKE_TEST_PROJECT must be numeric IDs (required by the new config resolver validation). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: even-wei <evenwei@infuseai.io>
The bash expansion `${VAR:+set}${VAR:-not set}` concatenates both
results when VAR is set, printing the actual token value. Replace
with an explicit if/else that only prints "set" or "not set".
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: even-wei <evenwei@infuseai.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR checklist
What type of PR is this?
Test / CI
What this PR does / why we need it:
Adds an E2E smoke test for
recce-cloud uploadagainst the staging server, covering all testable authentication flows:GITHUB_TOKEN→ platform-specific endpointGITHUB_TOKEN+--type prodRECCE_API_TOKEN→ generic endpointRECCE_API_TOKEN+--type prodKey design decisions:
dbt buildneeded (server stores files as-is)env -u RECCE_API_TOKENfor GitHub flow isolation (CLI Priority 1 = API token)SMOKE_TEST_API_TOKENnot setAlso removes the obsolete Recce State file operations (
download/purge/upload) from the existing dbt cloud smoke test.Secrets required
RECCE_CLOUD_TOKENSMOKE_TEST_GITHUB_REPOSMOKE_TEST_API_TOKENWhich issue(s) this PR fixes:
N/A — new test coverage
Special notes for your reviewer:
The workflow triggers on changes to
recce_cloud/**andintegration_tests/recce_cloud/**. It will not run untilSMOKE_TEST_GITHUB_REPOis added as a repository secret.Does this PR introduce a user-facing change?:
NONE