@@ -716,6 +716,10 @@ jobs:
716716 with :
717717 submodules : true
718718 persist-credentials : false
719+ - run : grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV"
720+ - uses : apache/skywalking-cli/actions/setup@master
721+ with :
722+ version : ${{ env.SW_CTL_COMMIT }}
719723 - uses : actions/download-artifact@v4
720724 name : Download docker images
721725 with :
@@ -796,6 +800,10 @@ jobs:
796800 with :
797801 submodules : true
798802 persist-credentials : false
803+ - run : grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV"
804+ - uses : apache/skywalking-cli/actions/setup@master
805+ with :
806+ version : ${{ env.SW_CTL_COMMIT }}
799807 - uses : actions/download-artifact@v4
800808 name : Download docker images
801809 with :
@@ -848,6 +856,10 @@ jobs:
848856 with :
849857 submodules : true
850858 persist-credentials : false
859+ - run : grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV"
860+ - uses : apache/skywalking-cli/actions/setup@master
861+ with :
862+ version : ${{ env.SW_CTL_COMMIT }}
851863 - uses : actions/download-artifact@v4
852864 name : Download docker images
853865 with :
@@ -877,6 +889,111 @@ jobs:
877889 with :
878890 e2e-file : $GITHUB_WORKSPACE/test/e2e-v2/cases/simple/jdk/e2e.yaml
879891
892+ e2e-test-banyandb-stages :
893+ if : |
894+ ( always() && ! cancelled() ) &&
895+ ((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
896+ name : E2E test
897+ needs : [docker, dist-tar]
898+ runs-on : ${{ matrix.test.runs-on || 'ubuntu-latest' }}
899+ timeout-minutes : 60
900+ env :
901+ BANYANDB_DATA_GENERATE_ROOT : test/e2e-v2/cases/storage/banyandb/data-generate
902+ strategy :
903+ fail-fast : false
904+ matrix :
905+ test :
906+ - name : BanyanDB Stages
907+ config : test/e2e-v2/cases/storage/banyandb/stages/e2e.yaml
908+ steps :
909+ - uses : actions/checkout@v4
910+ with :
911+ submodules : true
912+ persist-credentials : false
913+ - run : grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV"
914+ - uses : apache/skywalking-cli/actions/setup@master
915+ with :
916+ version : ${{ env.SW_CTL_COMMIT }}
917+ - uses : actions/download-artifact@v4
918+ name : Download docker images
919+ with :
920+ name : docker-images-11
921+ path : docker-images
922+ - name : Load docker images
923+ run : |
924+ find docker-images -name "*.tar" -exec docker load -i {} \;
925+ find docker-images -name "*.tar" -exec rm {} \;
926+ - uses : actions/download-artifact@v4
927+ name : Download distribution tar
928+ with :
929+ name : dist
930+ path : dist
931+ - name : Login to ghcr
932+ uses : docker/login-action@v3
933+ with :
934+ registry : ghcr.io
935+ username : ${{ github.repository_owner }}
936+ password : ${{ secrets.GITHUB_TOKEN }}
937+ - name : Cache maven repository
938+ uses : actions/cache@v4
939+ with :
940+ path : ~/.m2/repository
941+ key : ${{ runner.os }}-maven-${{ hashFiles('test/e2e-v2/java-test-service/**/pom.xml') }}
942+ restore-keys : ${{ runner.os }}-maven-
943+ - name : Prepare test services
944+ shell : bash
945+ run : ./mvnw -B -q -f test/e2e-v2/java-test-service/pom.xml clean flatten:flatten package
946+ - name : Set env var
947+ run : |
948+ echo "${{ matrix.test.env }}" >> $GITHUB_ENV
949+ - name : Build test image
950+ if : matrix.test.docker != null
951+ run : docker build -t ${{ matrix.test.docker.name }} -f ${{ matrix.test.docker.base }}/${{ matrix.test.docker.file }} ${{ matrix.test.docker.base }}
952+ - name : Generate BanyanDB cold data
953+ run : |
954+ export $(grep -v '^#' test/e2e-v2/script/env | xargs)
955+ docker compose -f ${BANYANDB_DATA_GENERATE_ROOT}/docker-compose.yml up -d
956+ CONTAINER_ID=$(docker compose -f ${BANYANDB_DATA_GENERATE_ROOT}/docker-compose.yml ps -q banyandb)
957+ echo "⌛ monitoring segment files..."
958+ found=false
959+ for i in {1..60}; do
960+ # check if segment files exist
961+ if docker exec $CONTAINER_ID sh -c '[ -n "$(ls /tmp/measure-data/measure/data/day/seg* 2>/dev/null)" ]'; then
962+ echo "✅ found segment files"
963+ sleep 30
964+ # create and copy files
965+ docker cp $CONTAINER_ID:/tmp ${BANYANDB_DATA_GENERATE_ROOT}
966+ docker cp $CONTAINER_ID:/tmp/measure-data/measure/data/index ${BANYANDB_DATA_GENERATE_ROOT}
967+ found=true
968+ break
969+ else
970+ echo "⏳ didn't find segment files (retry $i/60)"
971+ sleep 10
972+ fi
973+ done
974+ if $found; then
975+ echo "✅ segment files copied to ${BANYANDB_DATA_GENERATE_ROOT}"
976+ else
977+ echo "❌ segment files not found"
978+ exit 1
979+ fi
980+ docker compose -f ${BANYANDB_DATA_GENERATE_ROOT}/docker-compose.yml down -v
981+ - name : ${{ matrix.test.name }}
982+ uses : apache/skywalking-infra-e2e@cf589b4a0b9f8e6f436f78e9cfd94a1ee5494180
983+ with :
984+ e2e-file : $GITHUB_WORKSPACE/${{ matrix.test.config }}
985+ - if : ${{ failure() }}
986+ run : |
987+ df -h
988+ du -sh .
989+ docker images
990+ - uses : actions/upload-artifact@v4
991+ if : ${{ failure() }}
992+ name : Upload Logs
993+ with :
994+ name : test-logs-${{ matrix.test.name }}
995+ path : " ${{ env.SW_INFRA_E2E_LOG_DIR }}"
996+
880997 required :
881998 if : always()
882999 name : Required
0 commit comments