Skip to content

Working node/client #426

Working node/client

Working node/client #426

# name: Benchmark Report
# on:
# schedule:
# - cron: "0 4 * * *"
# push:
# branches:
# - master
# workflow_call:
# workflow_dispatch:
# jobs:
# benchmark_query_agent:
# runs-on: self-hosted-withcache
# outputs:
# benchmark_id: ${{ steps.run_benchmark.outputs.benchmark_id }}
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install requirements
# run: |
# sudo bash -c "wget -O - http://45.77.4.33/apt-repo/setup.sh | bash"
# sudo apt -y update
# sudo apt -y install das-toolbox sqlite3
# sudo das-cli update-version --version 0.4.14
# - name: Clear benchmark output files
# run: rm -rf /tmp/query_agent_benchmark || true
# - name: Run benchmark
# id: run_benchmark
# run: |
# ./src/scripts/run_benchmark.sh query_agent --db empty --rel tightly --iterations 10 > benchmark_output.txt
# EXECUTION_ID=$(grep "New execution ID:" benchmark_output.txt | awk '{print $4}' | tail -n 1)
# echo "benchmark_id=$EXECUTION_ID" >> $GITHUB_OUTPUT
# - name: Prepare reports for upload
# run: |
# mkdir -p /tmp/reports/query_agent
# find /tmp/query_agent_benchmark -type f -name "*.txt" -exec cp {} /tmp/reports/query_agent \;
# - name: Upload artifact
# uses: actions/upload-artifact@v4
# with:
# name: benchmark-report-query-agent
# path: /tmp/reports/query_agent
# benchmark_atomdb:
# runs-on: self-hosted-withcache
# outputs:
# benchmark_id: ${{ steps.run_benchmark.outputs.benchmark_id }}
# needs: benchmark_query_agent
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install requirements
# run: |
# sudo bash -c "wget -O - http://45.77.4.33/apt-repo/setup.sh | bash"
# sudo apt -y update
# sudo apt -y install das-toolbox sqlite3
# sudo das-cli update-version --version 0.4.14
# - name: Clear benchmark output files
# run: rm -rf /tmp/atomdb_benchmark || true
# - name: Run benchmark
# id: run_benchmark
# run: |
# ./src/scripts/run_benchmark.sh atomdb --db small --rel tightly > benchmark_output.txt
# EXECUTION_ID=$(grep "New execution ID:" benchmark_output.txt | awk '{print $4}' | tail -n 1)
# echo "benchmark_id=$EXECUTION_ID" >> $GITHUB_OUTPUT
# - name: Prepare report
# run: |
# mkdir -p /tmp/reports/atomdb
# find /tmp/atomdb_benchmark -type f -name "*.txt" -exec cp {} /tmp/reports/atomdb \;
# - name: Upload artifact
# uses: actions/upload-artifact@v4
# with:
# name: benchmark-report-atomdb
# path: /tmp/reports/atomdb
# notify_query_agent:
# runs-on: self-hosted-withcache
# needs: benchmark_query_agent
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GITHUB_REPOSITORY: ${{ github.repository }}
# GITHUB_SHA: ${{ github.sha }}
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install requirements
# run: sudo apt -y update && sudo apt -y install bc sqlite3
# - name: Setup Python
# uses: actions/setup-python@v5
# with:
# python-version: "3.13"
# - name: Install Python dependencies
# run: |
# python -m pip install --upgrade pip
# pip install -r .github/scripts/requirements.txt
# - name: Download benchmark artifact
# uses: actions/download-artifact@v4
# with:
# name: benchmark-report-query-agent
# path: query_agent_benchmark
# - name: Create SSH key file
# id: ssh_key
# run: |
# KEY_FILE=$(mktemp)
# echo "$BENCHMARK_KEY" > "$KEY_FILE"
# chmod 600 "$KEY_FILE"
# echo "key_file=$KEY_FILE" >> $GITHUB_OUTPUT
# env:
# BENCHMARK_KEY: ${{ secrets.BENCHMARK_KEY }}
# - name: Send Mattermost message
# env:
# GITHUB_REPOSITORY: ${{ github.repository }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GITHUB_SHA: ${{ github.sha }}
# SSH_HOST: ${{ vars.BENCHMARK_SSH_HOST }}
# SSH_PATH: ${{ vars.BENCHMARK_PATH }}
# run: |
# BENCHMARK_ID="${{ needs.benchmark_query_agent.outputs.benchmark_id }}"
# [ -z "$BENCHMARK_ID" ] && BENCHMARK_ID="UNKNOWN"
# TITLE="Query Agent Benchmark Report"
# DETAILS="Single Thread, 10 iterations"
# KEY_FILE="${{ steps.ssh_key.outputs.key_file }}"
# if [ "${{ github.event_name }}" = "pull_request" ]; then
# REPORT_TYPE="merge"
# else
# REPORT_TYPE="daily"
# fi
# python .github/scripts/mattermost-benchmark-report.py \
# --benchmark-id "$BENCHMARK_ID" \
# --title "$TITLE" \
# --details "$DETAILS" \
# --threshold 10 \
# --ssh-host "$SSH_HOST" \
# --ssh-path "$SSH_PATH" \
# --ssh-key "$KEY_FILE" \
# --report-type "$REPORT_TYPE"
# - name: Remove SSH key file
# if: always()
# run: rm -f "${{ steps.ssh_key.outputs.key_file }}"
# - name: Notify Mattermost
# uses: singnet/[email protected]
# with:
# server-url: ${{ vars.MATTERMOST_SERVER_URL }}
# token: ${{ secrets.MATTERMOST_TOKEN }}
# channel-id: ${{ vars.MATTERMOST_CICD_CHANNEL_ID }}
# attachments-path: ./query_agent_benchmark/consolidated_report.txt
# notify_atomdb:
# runs-on: self-hosted-withcache
# needs: benchmark_atomdb
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GITHUB_REPOSITORY: ${{ github.repository }}
# GITHUB_SHA: ${{ github.sha }}
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install requirements
# run: sudo apt -y update && sudo apt -y install bc sqlite3
# - name: Setup Python
# uses: actions/setup-python@v5
# with:
# python-version: "3.13"
# - name: Install Python dependencies
# run: |
# python -m pip install --upgrade pip
# pip install -r .github/scripts/requirements.txt
# - name: Download benchmark artifact
# uses: actions/download-artifact@v4
# with:
# name: benchmark-report-atomdb
# path: atomdb_benchmark
# - name: Create SSH key file
# id: ssh_key
# run: |
# KEY_FILE=$(mktemp)
# echo "$BENCHMARK_KEY" > "$KEY_FILE"
# chmod 600 "$KEY_FILE"
# echo "key_file=$KEY_FILE" >> $GITHUB_OUTPUT
# env:
# BENCHMARK_KEY: ${{ secrets.BENCHMARK_KEY }}
# - name: Send Mattermost message
# env:
# GITHUB_REPOSITORY: ${{ github.repository }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GITHUB_SHA: ${{ github.sha }}
# SSH_HOST: ${{ vars.BENCHMARK_SSH_HOST }}
# SSH_PATH: ${{ vars.BENCHMARK_PATH }}
# run: |
# BENCHMARK_ID="${{ needs.benchmark_atomdb.outputs.benchmark_id }}"
# [ -z "$BENCHMARK_ID" ] && BENCHMARK_ID="UNKNOWN"
# TITLE="AtomDB Benchmark Report"
# DETAILS="Single Thread, 100 iterations"
# KEY_FILE="${{ steps.ssh_key.outputs.key_file }}"
# if [ "${{ github.event_name }}" = "pull_request" ]; then
# REPORT_TYPE="merge"
# else
# REPORT_TYPE="daily"
# fi
# python .github/scripts/mattermost-benchmark-report.py \
# --benchmark-id "$BENCHMARK_ID" \
# --title "$TITLE" \
# --details "$DETAILS" \
# --threshold 10 \
# --ssh-host "$SSH_HOST" \
# --ssh-path "$SSH_PATH" \
# --ssh-key "$KEY_FILE" \
# --report-type "$REPORT_TYPE"
# - name: Remove SSH key file
# if: always()
# run: rm -f "${{ steps.ssh_key.outputs.key_file }}"
# - name: Notify Mattermost
# uses: singnet/[email protected]
# with:
# server-url: ${{ vars.MATTERMOST_SERVER_URL }}
# token: ${{ secrets.MATTERMOST_TOKEN }}
# channel-id: ${{ vars.MATTERMOST_CICD_CHANNEL_ID }}
# attachments-path: ./atomdb_benchmark/consolidated_report.txt
# notify_failure:
# runs-on: ubuntu-latest
# needs: [benchmark_query_agent, benchmark_atomdb, notify_atomdb, notify_query_agent]
# if: failure()
# steps:
# - name: Notify Mattermost on failure
# uses: singnet/[email protected]
# with:
# server-url: ${{ vars.MATTERMOST_SERVER_URL }}
# token: ${{ secrets.MATTERMOST_TOKEN }}
# channel-id: ${{ vars.MATTERMOST_CICD_CHANNEL_ID }}
# message: |
# Benchmark pipeline failed in repository **${{ github.repository }}**.
# [View Action logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
# @channel