Merge pull request #308 from stellar/protocol22 #1156
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: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref_protected == 'true' && github.sha || github.ref }} | |
cancel-in-progress: true | |
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: master | |
# the soroban CLI & RPC source code to compile and run from system test | |
# refers to checked out source of current git hub ref context | |
SYSTEM_TEST_SOROBAN_CLI_REF: https://github.com/stellar/soroban-cli.git\#main | |
SYSTEM_TEST_SOROBAN_RPC_REF: ${{ github.workspace }}/soroban-rpc | |
# 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: | |
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: stellar/stellar-core:21 | |
SYSTEM_TEST_CORE_IMAGE_BIN_PATH: /usr/bin/stellar-core | |
# 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-stellar-sdk to use, need to choose one of either | |
# resolution options, using npm release or a gh ref: | |
# | |
# option #1, set the version of stellar-sdk based on a npm release version | |
SYSTEM_TEST_JS_STELLAR_SDK_NPM_VERSION: 12.3.0 | |
# option #2, set the version of stellar-sdk used as a ref to a gh repo if | |
# a value is set on SYSTEM_TEST_JS_STELLAR_SDK_GH_REPO, it takes | |
# precedence over any SYSTEM_TEST_JS_STELLAR_SDK_NPM_VERSION | |
SYSTEM_TEST_JS_STELLAR_SDK_GH_REPO: | |
SYSTEM_TEST_JS_STELLAR_SDK_GH_REF: | |
# the version of rs-stellar-xdr to use for quickstart | |
SYSTEM_TEST_RS_XDR_GIT_REF: v21.2.0 | |
# 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#ae7fdb07283a0af836d4cd51ff09b02db93fb12c | |
# 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: "v21.6.0" | |
SYSTEM_TEST_SOROBAN_EXAMPLES_GIT_REPO: "https://github.com/stellar/soroban-examples.git" | |
steps: | |
- uses: actions/checkout@v4 | |
name: checkout system-test | |
with: | |
repository: stellar/system-test | |
ref: ${{ env.SYSTEM_TEST_GIT_REF }} | |
path: system-test | |
- uses: actions/checkout@v4 | |
name: checkout soroban-tools | |
with: | |
repository: stellar/soroban-tools | |
path: soroban-tools | |
- uses: actions/checkout@v4 | |
name: checkout soroban-rpc | |
with: | |
repository: stellar/soroban-rpc | |
path: soroban-rpc | |
- if: ${{ env.SYSTEM_TEST_JS_STELLAR_SDK_GH_REPO != ''}} | |
name: prepare local js-stellar-sdk | |
run: | | |
rm -rf $GITHUB_WORKSPACE/system-test/js-stellar-sdk; | |
- if: ${{ env.SYSTEM_TEST_JS_STELLAR_SDK_GH_REPO != ''}} | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.SYSTEM_TEST_JS_STELLAR_SDK_GH_REPO }} | |
ref: ${{ env.SYSTEM_TEST_JS_STELLAR_SDK_GH_REF }} | |
path: system-test/js-stellar-sdk | |
- uses: stellar/actions/rust-cache@main | |
- name: Build system test with component versions | |
run: | | |
cd $GITHUB_WORKSPACE/system-test | |
if [ -z "$SYSTEM_TEST_JS_STELLAR_SDK_GH_REPO" ]; then \ | |
JS_STELLAR_SDK_REF="$SYSTEM_TEST_JS_STELLAR_SDK_NPM_VERSION"; \ | |
else \ | |
JS_STELLAR_SDK_REF="file:/home/tester/js-stellar-sdk"; \ | |
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 \ | |
CORE_IMAGE_BIN_PATH=$SYSTEM_TEST_CORE_IMAGE_BIN_PATH \ | |
SOROBAN_RPC_GIT_REF=$SYSTEM_TEST_SOROBAN_RPC_REF \ | |
SOROBAN_CLI_GIT_REF=$SYSTEM_TEST_SOROBAN_CLI_REF \ | |
RUST_TOOLCHAIN_VERSION=$SYSTEM_TEST_RUST_TOOLCHAIN_VERSION \ | |
RS_XDR_GIT_REF=$SYSTEM_TEST_RS_XDR_GIT_REF \ | |
QUICKSTART_GIT_REF=$SYSTEM_TEST_QUICKSTART_GIT_REF \ | |
JS_STELLAR_SDK_NPM_VERSION=$JS_STELLAR_SDK_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 |