Conversation
Programmatic test covering the complete Moonlight protocol lifecycle: 1. Deploy Council (Channel Auth contract) 2. Deploy Channel (Privacy Channel, linked to council + SAC) 3. Register Privacy Provider (add_provider) 4. Deposit, Send, Withdraw (reuses existing e2e/ modules) 5. Remove Privacy Provider (remove_provider) Deploys contracts via stellar-sdk (replaces setup.sh for this flow), starts a provider-platform from source, and validates governance events when the node supports it. Run locally: cd lifecycle && deno task lifecycle
Splits the lifecycle test into setup and test phases for docker-compose: - ci-setup.ts: deploys contracts, registers provider, writes config to shared volume (provider.env + contracts.env) - ci-test.ts: reads config, runs payment flow, removes provider - docker-compose.yml: stellar, db, setup, provider, test-runner services with isolated network and health-check ordering Each compose run gets its own network, avoiding conflicts with the existing e2e/ docker-compose.
Reusable workflow (workflow_call) for the lifecycle E2E test, matching the same input/secret interface as e2e-reusable.yml: - contracts_artifact / contracts_version for WASMs - provider_version / provider_image_override for provider image - E2E_TRIGGER_TOKEN secret Uses docker compose in lifecycle/ directory. Caller repos add a lifecycle job alongside the existing e2e job.
This was referenced Mar 18, 2026
AquiGorka
added a commit
to Moonlight-Protocol/provider-platform
that referenced
this pull request
Mar 18, 2026
## Summary - Adds a `lifecycle` job to the PR workflow, running in parallel with the existing `e2e` job - Both depend on the `build` job's PR Docker image (`provider_image_override`) - The lifecycle test deploys contracts programmatically and validates the full protocol lifecycle using the PR-built provider-platform image ## Dependencies - Moonlight-Protocol/local-dev#19 must be merged first (provides the reusable workflow) ## Test plan - [ ] Lifecycle job runs successfully once the local-dev PR lands
AquiGorka
added a commit
to Moonlight-Protocol/soroban-core
that referenced
this pull request
Mar 18, 2026
## Summary - Adds a `lifecycle` job to the PR workflow, running in parallel with the existing `e2e` job - Both depend on the `build` job's `contract-wasms` artifact - The lifecycle test deploys contracts programmatically and validates the full protocol lifecycle ## Dependencies - Moonlight-Protocol/local-dev#19 must be merged first (provides the reusable workflow) ## Test plan - [ ] Lifecycle job runs successfully once the local-dev PR lands
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.
Summary
e2e/modules for the payment flow (auth, deposit, send, receive, withdraw)lifecycle-reusable.yml) matching the same interface ase2e-reusable.ymlLocal usage
CI usage
Called by soroban-core and provider-platform PR workflows (see companion PRs).
Test plan
deno task lifecyclepasses locally against a running Stellar node (~90s)