Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
cd38b77
add arm support
zhoucai-pingcap Jan 30, 2026
b8e7f91
add vector data sync demo
zhoucai-pingcap Feb 6, 2026
8855ce8
add vector data sync demo
zhoucai-pingcap Feb 6, 2026
8b003fc
fix topsql dedicated missing topsql_instance
zhoucai-pingcap Feb 6, 2026
8c12952
add vector data sync demo
zhoucai-pingcap Feb 9, 2026
4b1d2c7
Merge branch '0.49' into add-0.49-ci
zhoucai-pingcap Feb 9, 2026
ad7e8d1
add delta_lake_watermark source
zhoucai-pingcap Feb 10, 2026
c7fe006
add vector data sync demo
zhoucai-pingcap Feb 12, 2026
27023c4
add vector data sync demo
zhoucai-pingcap Feb 12, 2026
44afe08
add line parser
zhoucai-pingcap Feb 12, 2026
3c9bd76
add vector data sync demo
zhoucai-pingcap Feb 12, 2026
9b8b1a2
add vector data sync demo
zhoucai-pingcap Feb 13, 2026
4084fe6
Merge branch '0.49' into add-0.49-ci
zhoucai-pingcap Feb 13, 2026
22f6818
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 14, 2026
bfe663f
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 15, 2026
fb61d57
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 25, 2026
c373832
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 25, 2026
ee6b27a
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 25, 2026
9e69d9c
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 27, 2026
52d4d16
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 27, 2026
17f3af0
add conprof new topology mode and prof mode
zhoucai-pingcap Feb 28, 2026
2b51640
improve stream process speed
zhoucai-pingcap Mar 1, 2026
34324c7
improve stream file performance
zhoucai-pingcap Mar 1, 2026
3fabd08
improve stream file performance
zhoucai-pingcap Mar 1, 2026
fa824cc
improve stream process speed
zhoucai-pingcap Mar 2, 2026
2c81720
improve stream process performance
zhoucai-pingcap Mar 2, 2026
4cff8c2
add description for file_list source
zhoucai-pingcap Mar 2, 2026
cb71546
add retry for streaming mode
zhoucai-pingcap Mar 2, 2026
21a724a
add s3 sync mode
zhoucai-pingcap Mar 4, 2026
ca2f707
improve delta_lake_watermark memory usage
zhoucai-pingcap Mar 4, 2026
b7b8f66
fix sink boolean issue
zhoucai-pingcap Mar 4, 2026
beb09b1
increase default varchat length
zhoucai-pingcap Mar 5, 2026
f4375ce
add comprehensive unit tests for new components
zhoucai-pingcap Mar 5, 2026
63f06e9
change topsql/conprof instance from ip to pod name
zhoucai-pingcap Mar 6, 2026
cf7769d
add topru enable config
zhoucai-pingcap Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 51 additions & 9 deletions .github/workflows/build_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
contents: read
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.git-ref || github.sha }}

Expand Down Expand Up @@ -61,10 +61,10 @@ jobs:
run: cargo install cross

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v3

- name: Set build date and tags
id: set_tags
Expand All @@ -83,7 +83,7 @@ jobs:
password: ${{ secrets.DOCKERHUBTOKEN }}

- name: Build x86_64 binary (standard)
timeout-minutes: 60
timeout-minutes: 90
env:
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 16
CARGO_PROFILE_RELEASE_LTO: "thin"
Expand All @@ -98,7 +98,7 @@ jobs:
find target/x86_64-unknown-linux-gnu/release/build -type f -name "*.o" -delete 2>/dev/null || true

- name: Build aarch64 binary (standard)
timeout-minutes: 60
timeout-minutes: 90
env:
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 16
CARGO_PROFILE_RELEASE_LTO: "thin"
Expand All @@ -112,6 +112,21 @@ jobs:
find target/aarch64-unknown-linux-gnu/release/deps -name "*.rlib" -not -name "libvector*.rlib" -delete 2>/dev/null || true
find target/aarch64-unknown-linux-gnu/release/build -type f -name "*.o" -delete 2>/dev/null || true

- name: Build armv7 binary (standard)
timeout-minutes: 90
env:
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 16
CARGO_PROFILE_RELEASE_LTO: "thin"
CARGO_BUILD_JOBS: 4
CARGO_INCREMENTAL: 0
run: |
echo "Starting armv7 build at $(date)"
make build-armv7-unknown-linux-gnueabihf
echo "Finished armv7 build at $(date)"
# Clean up intermediate files to save disk space
find target/armv7-unknown-linux-gnueabihf/release/deps -name "*.rlib" -not -name "libvector*.rlib" -delete 2>/dev/null || true
find target/armv7-unknown-linux-gnueabihf/release/build -type f -name "*.o" -delete 2>/dev/null || true

- name: Build and push standard image
env:
REPO: ${{ env.DOCKER_REPO }}
Expand All @@ -123,15 +138,17 @@ jobs:
# Remove standard build artifacts after Docker image is built
rm -rf target/x86_64-unknown-linux-gnu/release/build
rm -rf target/aarch64-unknown-linux-gnu/release/build
rm -rf target/armv7-unknown-linux-gnueabihf/release/build
find target/x86_64-unknown-linux-gnu/release/deps -type f ! -name "*.rlib" -delete 2>/dev/null || true
find target/aarch64-unknown-linux-gnu/release/deps -type f ! -name "*.rlib" -delete 2>/dev/null || true
find target/armv7-unknown-linux-gnueabihf/release/deps -type f ! -name "*.rlib" -delete 2>/dev/null || true
# Keep only the final binaries
df -h
echo "Available disk space after Cleaned up intermediate build artifacts:"
df -h . | tail -1

- name: Build x86_64 binary (nextgen)
timeout-minutes: 60
timeout-minutes: 90
env:
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 16
CARGO_PROFILE_RELEASE_LTO: "thin"
Expand All @@ -146,7 +163,7 @@ jobs:
find target/x86_64-unknown-linux-gnu/release/build -type f -name "*.o" -delete 2>/dev/null || true

- name: Build aarch64 binary (nextgen)
timeout-minutes: 60
timeout-minutes: 90
env:
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 16
CARGO_PROFILE_RELEASE_LTO: "thin"
Expand All @@ -160,6 +177,21 @@ jobs:
find target/aarch64-unknown-linux-gnu/release/deps -name "*.rlib" -not -name "libvector*.rlib" -delete 2>/dev/null || true
find target/aarch64-unknown-linux-gnu/release/build -type f -name "*.o" -delete 2>/dev/null || true

- name: Build armv7 binary (nextgen)
timeout-minutes: 90
env:
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 16
CARGO_PROFILE_RELEASE_LTO: "thin"
CARGO_BUILD_JOBS: 4
CARGO_INCREMENTAL: 0
run: |
echo "Starting armv7 nextgen build at $(date)"
make build-armv7-unknown-linux-gnueabihf-nextgen
echo "Finished armv7 nextgen build at $(date)"
# Clean up intermediate files to save disk space
find target/armv7-unknown-linux-gnueabihf/release/deps -name "*.rlib" -not -name "libvector*.rlib" -delete 2>/dev/null || true
find target/armv7-unknown-linux-gnueabihf/release/build -type f -name "*.o" -delete 2>/dev/null || true

- name: Check nextgen binaries before building image
run: |
echo "Checking nextgen binary files..."
Expand All @@ -180,8 +212,18 @@ jobs:
echo " ❌ NOT FOUND"
fi
echo ""
if [ -f target/x86_64-unknown-linux-gnu/release/vector-nextgen ] && [ -f target/aarch64-unknown-linux-gnu/release/vector-nextgen ]; then
echo "✅ Both nextgen binaries exist - Makefile should skip rebuild"
echo "armv7 binary:"
if [ -f target/armv7-unknown-linux-gnueabihf/release/vector-nextgen ]; then
ls -lh target/armv7-unknown-linux-gnueabihf/release/vector-nextgen
echo " ✅ EXISTS"
else
echo " ❌ NOT FOUND"
fi
echo ""
if [ -f target/x86_64-unknown-linux-gnu/release/vector-nextgen ] && \
[ -f target/aarch64-unknown-linux-gnu/release/vector-nextgen ] && \
[ -f target/armv7-unknown-linux-gnueabihf/release/vector-nextgen ]; then
echo "✅ All nextgen binaries exist - Makefile should skip rebuild"
else
echo "⚠️ Some binaries missing - Makefile will trigger rebuild"
fi
Expand Down
99 changes: 99 additions & 0 deletions .github/workflows/test_coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: test_coverage

on:
pull_request:
branches: [ master, main ]
push:
branches: [ master, main ]
workflow_dispatch:

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1

jobs:
coverage:
name: Test Coverage
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Check out code
uses: actions/checkout@v3

- name: Cache cargo dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-coverage-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-coverage-
${{ runner.os }}-cargo-

- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Install cargo-tarpaulin
run: cargo install cargo-tarpaulin --locked

- name: Run tests with coverage
run: |
cargo tarpaulin \
--workspace \
--lib \
--out Xml \
--out Html \
--output-dir coverage \
--timeout 120 \
--exclude-files '*/tests/*' \
--exclude-files '*/test_*' \
--exclude-files '*/benches/*' \
--exclude-files '*/examples/*' \
--exclude-files '*/src/main.rs' || true

- name: Generate coverage summary
run: |
if [ -f coverage/cobertura.xml ]; then
echo "## 📊 Test Coverage Report" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Coverage report generated successfully!" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "📁 **Coverage files:**" >> $GITHUB_STEP_SUMMARY
echo "- HTML report: \`coverage/tarpaulin-report.html\`" >> $GITHUB_STEP_SUMMARY
echo "- XML report: \`coverage/cobertura.xml\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "View the detailed HTML report in the artifacts below." >> $GITHUB_STEP_SUMMARY
else
echo "⚠️ Coverage report generation failed or no tests were run." >> $GITHUB_STEP_SUMMARY
fi

- name: Upload coverage reports
uses: actions/upload-artifact@v4
if: always()
with:
name: coverage-report
path: |
coverage/
retention-days: 30

- name: Comment PR with coverage
if: github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@v2
with:
recreate: true
message: |
## 📊 Test Coverage Report

Coverage report has been generated for this PR.

📥 **Download the coverage report:**
- Check the "coverage-report" artifact in the Actions tab
- Open `coverage/tarpaulin-report.html` in your browser for detailed coverage

💡 **Note:** Coverage reports are generated for library tests only (excluding integration tests and examples).
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/target
.env
*.tmp
.idea
.DS_Store
Expand Down
Loading