From 638c43fd3bf8ecf065a678a6a7adfca0e28bfd9b Mon Sep 17 00:00:00 2001 From: Roy Crihfield Date: Wed, 7 Aug 2024 04:53:17 +0000 Subject: [PATCH] Use external fixturenet stack in CI (#3) Also runs new BlobTx tests - https://git.vdb.to/cerc-io/system-tests/pulls/13. Depends on - https://git.vdb.to/cerc-io/fixturenet-eth-stacks/pulls/21 - https://git.vdb.to/cerc-io/ipld-eth-server/pulls/266 - https://git.vdb.to/cerc-io/system-tests/pulls/13 Reviewed-on: https://git.vdb.to/cerc-io/eth-blob-indexer/pulls/3 --- .gitea/workflows/test.yml | 44 ++++++++++++++++++++++-------------- scripts/integration-setup.sh | 27 ---------------------- scripts/run-test-stack.sh | 33 +++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 44 deletions(-) delete mode 100755 scripts/integration-setup.sh create mode 100755 scripts/run-test-stack.sh diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index add588c..e975d25 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -9,15 +9,18 @@ on: - ci-test env: - SO_VERSION: roysc/fix-eth-stacks - SYSTEM_TESTS_REF: roysc/test-blob-tx + SO_VERSION: v1.1.0-36d4969-202407091537 + SYSTEM_TESTS_REF: main + FIXTURENET_ETH_STACKS_REF: main jobs: test-beacon-collector: name: Run Beacon collector tests runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + progress: false - uses: actions/setup-go@v4 with: go-version-file: 'go.mod' @@ -29,37 +32,42 @@ jobs: with: python-version: 3.11 - - name: "Install stack-orchestrator" - uses: actions/checkout@v3 - with: - repository: cerc-io/stack-orchestrator - ref: ${{ env.SO_VERSION }} - path: ./stack-orchestrator - - run: pip install ./stack-orchestrator + - name: Install stack-orchestrator + run: | + curl -L -O https://github.com/cerc-io/stack-orchestrator/releases/download/$SO_VERSION/laconic-so + chmod +x laconic-so + echo PATH="$PATH:$(pwd)" >> $GITHUB_ENV - name: "Clone system-tests" - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: cerc-io/system-tests ref: ${{ env.SYSTEM_TESTS_REF }} path: ./system-tests token: ${{ secrets.CICD_REPO_TOKEN }} + progress: false - name: "Install pytest" working-directory: ./system-tests run: pip3 install pytest + - name: "Clone fixturenet stack repo" + uses: actions/checkout@v4 + with: + repository: cerc-io/fixturenet-eth-stacks + ref: ${{ env.FIXTURENET_ETH_STACKS_REF }} + path: ./fixturenet-eth-stacks + progress: false - name: "Run fixturenet stack" - run: ./scripts/integration-setup.sh + run: ./scripts/run-test-stack.sh ./fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-plugeth - name: "Run server" run: docker compose -f test/compose.yml up --wait --quiet-pull - name: "Run tests" working-directory: ./system-tests - # Work around dependency conflicts: - # - web3 uses an older eth-account until (unreleased) v7 - # - old pydantic is pinned by stack-orchestrator + # Work around dependency conflict in system-tests: + # web3 uses an older eth-account until (unreleased) v7 run: | pip3 install -r requirements.txt - pip3 install --no-deps 'eth-account>=0.12.3' + pip3 install --no-deps 'eth-account>=0.12.3,<0.13' pip3 install 'pydantic>=2.0.0' python3 -m pytest -vv -k test_blob_tx @@ -67,7 +75,9 @@ jobs: name: Run Blobscan scraper tests runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + progress: false - uses: actions/setup-go@v4 with: go-version-file: 'go.mod' diff --git a/scripts/integration-setup.sh b/scripts/integration-setup.sh deleted file mode 100755 index 8b5d4f1..0000000 --- a/scripts/integration-setup.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Builds and deploys a stack with only what we need. -# This script assumes it is running in the project root. - -set -e - -laconic_so="${LACONIC_SO:-laconic-so} --stack $(readlink -f test) --verbose" -config_dir=$(readlink -f "${CONFIG_DIR:-$(mktemp -d)}") - -# Prevent conflicting tty output -export BUILDKIT_PROGRESS=plain - -# By default assume we are running in the project root -export CERC_REPO_BASE_DIR="${CERC_REPO_BASE_DIR:-..}" -# The debugger can swallow error messages on panic -echo CERC_REMOTE_DEBUG=false >> $config_dir/stack.env - -set -x - -if [[ -z $SKIP_BUILD ]]; then - $laconic_so setup-repositories - $laconic_so build-containers -fi - -$laconic_so deploy \ - --env-file $config_dir/stack.env \ - --cluster test up diff --git a/scripts/run-test-stack.sh b/scripts/run-test-stack.sh new file mode 100755 index 0000000..d5869da --- /dev/null +++ b/scripts/run-test-stack.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -e + +stack_dir=$(readlink -f "$1") +[[ -d "$stack_dir" ]] + +laconic_so="laconic-so --verbose --stack $stack_dir" + +CONFIG_DIR=$(readlink -f "${CONFIG_DIR:-$(mktemp -d)}") +# By default assume we are running in the project root. +export CERC_REPO_BASE_DIR="${CERC_REPO_BASE_DIR:-$(git rev-parse --show-toplevel)/..}" + +# Don't run geth/plugeth in the debugger, it will swallow error backtraces +echo CERC_REMOTE_DEBUG=false >> $CONFIG_DIR/stack.env + +set -x + +if [[ -z $SKIP_BUILD ]]; then + # Prevent conflicting tty output + export BUILDKIT_PROGRESS=plain + + $laconic_so setup-repositories + $laconic_so build-containers +fi + +if ! $laconic_so deploy \ + --env-file $CONFIG_DIR/stack.env \ + --cluster test up +then + $laconic_so deploy --cluster test logs + exit 1 +fi