chore: add way to invoke cargo from go code in effort to reuse rust tests #2532
Workflow file for this run
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: 352cc1d4ea96af8cfb2c2b7335c3b51da000f889 | |
# 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#ecb24df104c2453a00fa5097d2e879d7731b9596 | |
SYSTEM_TEST_CORE_COMPILE_CONFIGURE_FLAGS: "--disable-tests" | |
# or set SYSTEM_TEST_CORE_GIT_REF to empty, and set SYSTEM_TEST_CORE_IMAGE | |
# to pull a pre-compiled image from dockerhub 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: 1.0.0-beta.2 | |
# option #2, set the version of soroban-js-client used as a ref to a gh repo | |
# if a value is set on SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO, it takes precedence | |
# over any SYSTEM_TEST_JS_SOROBAN_CLIENT_NPM_VERSION | |
SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REPO: | |
SYSTEM_TEST_JS_SOROBAN_CLIENT_GH_REF: | |
# 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#69a1089eee9aaac4bafe4cbfc0639de18222db6a | |
# 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 |