mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-09 06:13:10 +00:00
97 lines
3.4 KiB
YAML
97 lines
3.4 KiB
YAML
# Run the Compose-packaged CLI P2P smoke benchmark.
|
|
#
|
|
# This workflow is intentionally manual-only. It exercises the local Compose
|
|
# package for CouchDB + Nostr relay + CLI runner, and uploads the benchmark JSON
|
|
# results for inspection without adding benchmark work to pull-request CI.
|
|
name: cli-p2p-compose-smoke
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
cases:
|
|
description: 'Comma-separated benchmark cases'
|
|
required: false
|
|
default: 'couchdb-baseline,p2p-direct-local'
|
|
signalling_cases:
|
|
description: 'Comma-separated signalling-shim P2P benchmark cases'
|
|
required: false
|
|
default: 'p2p-signalling-netem-home-wifi'
|
|
md_files:
|
|
description: 'Markdown file count'
|
|
required: false
|
|
default: '2'
|
|
bin_files:
|
|
description: 'Binary file count'
|
|
required: false
|
|
default: '1'
|
|
couchdb_rtt_ms:
|
|
description: 'Requested CouchDB RTT in milliseconds'
|
|
required: false
|
|
default: '20'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
smoke:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 45
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Show Docker versions
|
|
run: |
|
|
docker --version
|
|
docker compose version
|
|
|
|
- name: Run Compose P2P smoke benchmark
|
|
env:
|
|
BENCH_CASES: ${{ inputs.cases || 'couchdb-baseline,p2p-direct-local' }}
|
|
BENCH_MD_FILE_COUNT: ${{ inputs.md_files || '2' }}
|
|
BENCH_MD_MIN_SIZE_BYTES: '128'
|
|
BENCH_MD_MAX_SIZE_BYTES: '256'
|
|
BENCH_BIN_FILE_COUNT: ${{ inputs.bin_files || '1' }}
|
|
BENCH_BIN_SIZE_BYTES: '512'
|
|
BENCH_COUCHDB_RTT_MS: ${{ inputs.couchdb_rtt_ms || '20' }}
|
|
BENCH_SYNC_TIMEOUT: '180'
|
|
BENCH_PEERS_TIMEOUT: '20'
|
|
LIVESYNC_P2P_RELAY_READY_TIMEOUT_MS: '60000'
|
|
BENCH_LIVESYNC_TEST_TEE: '0'
|
|
run: docker compose -f test/bench-network/compose.yml run --build --rm bench-runner
|
|
|
|
- name: Run Compose P2P signalling-shim smoke benchmark
|
|
env:
|
|
BENCH_CASES: ${{ inputs.signalling_cases || 'p2p-signalling-netem-home-wifi' }}
|
|
BENCH_MD_FILE_COUNT: ${{ inputs.md_files || '2' }}
|
|
BENCH_MD_MIN_SIZE_BYTES: '128'
|
|
BENCH_MD_MAX_SIZE_BYTES: '256'
|
|
BENCH_BIN_FILE_COUNT: ${{ inputs.bin_files || '1' }}
|
|
BENCH_BIN_SIZE_BYTES: '512'
|
|
BENCH_SYNC_TIMEOUT: '180'
|
|
BENCH_PEERS_TIMEOUT: '60'
|
|
LIVESYNC_P2P_RELAY_READY_TIMEOUT_MS: '60000'
|
|
BENCH_LIVESYNC_TEST_TEE: '0'
|
|
NETEM_PROFILE: 'home-wifi'
|
|
run: docker compose -f test/bench-network/compose.yml --profile signalling-shim run --build --rm bench-runner-signalling-shim
|
|
|
|
- name: Show Compose diagnostics
|
|
if: failure()
|
|
run: |
|
|
docker compose -f test/bench-network/compose.yml ps
|
|
docker compose -f test/bench-network/compose.yml --profile signalling-shim logs --no-color couchdb nostr-relay p2p-signalling-shim || true
|
|
|
|
- name: Upload benchmark results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cli-p2p-compose-smoke-results
|
|
path: test/bench-network/bench-results/**
|
|
if-no-files-found: warn
|
|
|
|
- name: Stop Compose services
|
|
if: always()
|
|
run: docker compose -f test/bench-network/compose.yml down -v --remove-orphans
|