diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 2b8750a3f012a71fadb6ede0524df04b269d03a1..79509edd62d0ea0bc08ce323180009cad6866b39 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -212,14 +212,21 @@ jobs: run: | docker-compose up -d pulsar etcd minio - name: IntegrationTest - #continue-on-error: true # do not impact ci-passed for now run: | chmod +x build/builder.sh chmod +x scripts/run_intergration_test.sh ./build/builder.sh /bin/bash -c ./scripts/run_intergration_test.sh + - name: Archive result + uses: actions/upload-artifact@v3 + with: + name: it-result + path: | + ./it_coverage.txt + *.info + *.out codecov: name: Upload Code Coverage - needs: [UT-Cpp, UT-Go] + needs: [UT-Cpp, UT-Go, integration-test] runs-on: ubuntu-latest timeout-minutes: 5 steps: @@ -231,6 +238,10 @@ jobs: uses: actions/download-artifact@v3.0.1 with: name: go-result + - name: Download Integration Test coverage results + uses: actions/download-artifact@v3.0.1 + with: + name: it-result - name: Display structure of code coverage results run: | ls -lah @@ -241,7 +252,7 @@ jobs: id: upload_cov with: token: ${{ secrets.CODECOV_TOKEN }} - files: ./go_coverage.txt,./lcov_output.info + files: ./go_coverage.txt,./lcov_output.info,./it_coverage.txt name: ubuntu-20.04-unittests fail_ci_if_error: true - name: Retry Upload coverage to Codecov @@ -250,6 +261,6 @@ jobs: id: retry_upload_cov with: token: ${{ secrets.CODECOV_TOKEN }} - files: ./go_coverage.txt,./lcov_output.info + files: ./go_coverage.txt,./lcov_output.info,./it_coverage.txt name: ubuntu-${{ matrix.ubuntu }}-unittests fail_ci_if_error: true diff --git a/scripts/run_intergration_test.sh b/scripts/run_intergration_test.sh index 98810b988078aa5e76638aae5f1daa428f8ce896..13b2ce8c3d338ab1d93dca49f26cc389103fceb6 100755 --- a/scripts/run_intergration_test.sh +++ b/scripts/run_intergration_test.sh @@ -19,10 +19,12 @@ # run integration test echo "Running integration test under ./tests/integration" +FILE_COVERAGE_INFO="it_coverage.txt" BASEDIR=$(dirname "$0") source $BASEDIR/setenv.sh set -ex +echo "mode: atomic" > ${FILE_COVERAGE_INFO} # starting the timer beginTime=`date +%s` @@ -32,7 +34,11 @@ fi for d in $(go list ./tests/integration/...); do echo "$d" - go test -race ${APPLE_SILICON_FLAG} -v "$d" + go test -race ${APPLE_SILICON_FLAG} -v -coverpkg=./... -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + grep -v kafka profile.out | grep -v planparserv2/generated | grep -v mocks | sed '1d' >> ${FILE_COVERAGE_INFO} + rm profile.out + fi done endTime=`date +%s`