Skip to content

feat: invoke pipeline scripts with dry-run support - #840

Open
Jessicaayegh wants to merge 1 commit into
Nanle-code:masterfrom
Jessicaayegh:feature/invoke-pipeline-script-format
Open

feat: invoke pipeline scripts with dry-run support#840
Jessicaayegh wants to merge 1 commit into
Nanle-code:masterfrom
Jessicaayegh:feature/invoke-pipeline-script-format

Conversation

@Jessicaayegh

Copy link
Copy Markdown

Added YAML/JSON invocation scripts with strict schema validation. Added sequential execution, environment interpolation, assertions, and --dry-run support. Added CI usage documentation and fixture-based tests.

Description

Adds repeatable YAML/JSON invocation scripts for sequential Soroban contract operations. Supports environment interpolation, assertions, strict schema validation, and dry-run planning for CI workflows.

Closes #821

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Changes Made

  • Added contract invoke-script for YAML and JSON operation scripts.
  • Added sequential steps with ${VAR} environment interpolation.
  • Added equals and contains return-value assertions.
  • Added strict schema validation with precise errors.
  • Added --dry-run to print resolved calls without RPC or submission.
  • Added README, command reference, and fixture coverage.

Testing

How has this been tested?

  • Added unit tests for YAML fixture parsing, interpolation, strict fields, and assertions.

  • Ran editor diagnostics on all changed Rust files.

  • Ran git diff --check.

  • Full Cargo tests are currently blocked by unrelated existing compilation errors in other modules.

  • Unit tests added/updated

  • Integration tests added/updated

  • Manual testing performed

Test Coverage

  • Happy path: YAML parsing, sequential steps, interpolation, and dry-run planning.
  • Edge cases: Unsupported schema versions, empty steps, invalid argument types, and missing environment variables.
  • Error handling: Unknown fields, invalid assertions, invalid contract/network values, and missing wallets.

Code Quality Checklist

  • My code follows the style guidelines of this project (cargo fmt)
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings (cargo clippy -- -D warnings)
  • I have added tests that prove my feature works
  • New and existing unit tests pass locally with my changes
  • The CI checks pass (format, clippy, tests)

Breaking Changes

  • This PR introduces breaking changes

If checked, describe the breaking changes and migration path:

Not applicable.

Documentation

  • README.md updated
  • DEVELOPER_GUIDE.md updated (if applicable)
  • API_REFERENCE.md updated (if applicable)
  • No documentation changes needed

Screenshots (if applicable)

Not applicable.

Additional Context

The execute path delegates to the existing Soroban invocation logic. Dry-run validates and resolves the complete script but does not contact RPC, access wallets, or submit transactions.

Added YAML/JSON invocation scripts with strict schema validation.
Added sequential execution, environment interpolation, assertions, and --dry-run support.
Added CI usage documentation and fixture-based tests.
Closes Nanle-code#821
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@Jessicaayegh Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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.

[Advancement] Add contract invoke script language with dry-run semantics

1 participant