Skip to content

fix(rpc): actually use RPC in CLI tests; add icmd and assertCmd for better error reporting #2406

fix(rpc): actually use RPC in CLI tests; add icmd and assertCmd for better error reporting

fix(rpc): actually use RPC in CLI tests; add icmd and assertCmd for better error reporting #2406

Workflow file for this run

name: Soroban Tools e2e
on:
push:
branches: [main, release/**]
pull_request:
jobs:
integration:
name: System tests
strategy:
matrix:
scenario-filter: ["^TestDappDevelop$/^.*$"]
runs-on: ubuntu-latest-4-cores
env:
# the gh tag of system-test repo version to run
SYSTEM_TEST_GIT_REF: 4e459608f22b51ba5ee3c061d6d1a8641f16f7e0
# the soroban tools source code to compile and run from system test
# refers to checked out source of current git hub ref context
SYSTEM_TEST_SOROBAN_TOOLS_REF: ${{ github.workspace }}/soroban-tools
# core git ref should be latest commit for stable soroban functionality
# the core bin can either be compiled in-line here as part of ci,
SYSTEM_TEST_CORE_GIT_REF: https://github.com/stellar/stellar-core.git#2b283bd9ef3958a3ef477af36a3ff113a86d535b
SYSTEM_TEST_CORE_COMPILE_CONFIGURE_FLAGS: "--disable-tests --enable-next-protocol-version-unsafe-for-production"
# or can use option to pull a pre-compiled image instead
# SYSTEM_TEST_CORE_IMAGE:
# sets the version of rust toolchain that will be pre-installed in the
# test runtime environment, tests invoke rustc/cargo
SYSTEM_TEST_RUST_TOOLCHAIN_VERSION: stable
# set the version of js-soroban-client to use, need to choose one of either
# resolution options, using npm release or a gh ref:
#
# option #1, set the version of soroban-js-client based on a npm release version
SYSTEM_TEST_JS_SOROBAN_CLIENT_NPM_VERSION:
# option #2, set the version of soroban-js-client used as a ref to a gh repo
# if this value is present it takes precedence over any SYSTEM_TEST_JS_SOROBAN_CLIENT_NPM_VERSION
SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO: stellar/js-soroban-client
SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REF: refs/pull/135/head
# system test will build quickstart image internally to use for running the service stack
# configured in standalone network mode(core, rpc)
SYSTEM_TEST_QUICKSTART_GIT_REF: https://github.com/stellar/quickstart.git#c8826f5d8f80d54e819d1aca310cec3005f89175
# triggers system test to log out details from quickstart's logs and test steps
SYSTEM_TEST_VERBOSE_OUTPUT: "true"
# the soroban test cases will compile various contracts from the examples repo
SYSTEM_TEST_SOROBAN_EXAMPLES_GIT_HASH: "release/next"
SYSTEM_TEST_SOROBAN_EXAMPLES_GIT_REPO: "https://github.com/stellar/soroban-examples.git"
steps:
- uses: actions/checkout@v3
name: checkout system-test
with:
repository: stellar/system-test
ref: ${{ env.SYSTEM_TEST_GIT_REF }}
path: system-test
- uses: actions/checkout@v3
name: checkout soroban-tools
with:
path: soroban-tools
- if: ${{ env.SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO }}
name: prepare local js-soroban-client
run: |
rm -rf $GITHUB_WORKSPACE/system-test/js-soroban-client;
- if: ${{ env.SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO }}
uses: actions/checkout@v3
with:
repository: ${{ env.SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO }}
ref: ${{ env.SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REF }}
path: system-test/js-soroban-client
- uses: stellar/actions/rust-cache@main
- name: Build system test with component versions
run: |
cd $GITHUB_WORKSPACE/system-test
if [ -z "$SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO" ]; then \
JS_SOROBAN_CLIENT_REF="$SYSTEM_TEST_JS_SOROBAN_CLIENT_NPM_VERSION"; \
else \
JS_SOROBAN_CLIENT_REF="file:/home/tester/js-soroban-client"; \
fi
make \
CORE_GIT_REF=$SYSTEM_TEST_CORE_GIT_REF \
CORE_COMPILE_CONFIGURE_FLAGS="$SYSTEM_TEST_CORE_COMPILE_CONFIGURE_FLAGS" \
CORE_IMAGE=$SYSTEM_TEST_CORE_IMAGE \
SOROBAN_RPC_GIT_REF=$SYSTEM_TEST_SOROBAN_TOOLS_REF \
SOROBAN_CLI_GIT_REF=$SYSTEM_TEST_SOROBAN_TOOLS_REF \
RUST_TOOLCHAIN_VERSION=$SYSTEM_TEST_RUST_TOOLCHAIN_VERSION \
QUICKSTART_GIT_REF=$SYSTEM_TEST_QUICKSTART_GIT_REF \
JS_SOROBAN_CLIENT_NPM_VERSION=$JS_SOROBAN_CLIENT_REF \
build
- name: Run system test scenarios
run: |
docker run --rm -t --name e2e_test stellar/system-test:dev \
--VerboseOutput $SYSTEM_TEST_VERBOSE_OUTPUT \
--TestFilter "${{ matrix.scenario-filter }}" \
--SorobanExamplesGitHash $SYSTEM_TEST_SOROBAN_EXAMPLES_GIT_HASH \
--SorobanExamplesRepoURL $SYSTEM_TEST_SOROBAN_EXAMPLES_GIT_REPO