Soroban Tools e2e #10
This file contains 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
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: 1e39ad9fe1e0852ba286e7668aee1f899dd0b96d | |
# 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#22b9bb38416e5ce058eb9c1fadfdd414a4661833 | |
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/132/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: "testnet" | |
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 |