mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-06-11 19:29:57 +00:00
* refactor: adopt golang-standards/project-layout Move the legacy kernel wrapper `waku/*` to `pkg/kernel/*` and rename its package `waku` -> `kernel`; nothing outside the package imported it, so this is a mechanical import-path/prefix change. Update the relocated Makefile's relative dep path, the legacy CI workflows (CI/endurance/repeated) build paths, README, and .gitignore accordingly (preserving the libwaku-cache CI from #109). Add scaffolding for the upcoming Messaging API work: `internal/ffi` (cgo bridge), `pkg/messaging` (high-level Node API), and `examples/`. Document `pkg/kernel` as legacy until logos-delivery#3851 consolidates the C libraries. Also stop tracking the accidentally-committed `waku-bindings` build artifact and gitignore the kernel build output. No behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore: cleanup * fix: repair references to removed utils package nwaku_test_utils.go now uses pkg/kernel/utils.GetRSSKB; the memory_record tool is self-contained (local helpers, missing mutex restored). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
124 lines
3.3 KiB
YAML
124 lines
3.3 KiB
YAML
name: Endurance Tests
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
endurance1:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
|
|
- name: Initialize & update submodules
|
|
run: git submodule update --init --recursive
|
|
|
|
- name: Prepare third_party directory
|
|
run: |
|
|
sudo mkdir -p third_party
|
|
sudo chown $USER third_party
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: "1.23"
|
|
|
|
- name: Install Go dependencies
|
|
run: go mod download
|
|
|
|
- name: Vendor Go dependencies
|
|
run: go mod vendor
|
|
|
|
- name: Build libwaku
|
|
run: |
|
|
cd vendor/logos-delivery
|
|
make libwaku
|
|
|
|
- name: Build waku bindings
|
|
run: make -C pkg/kernel build
|
|
|
|
- name: Increase ulimit
|
|
run: sudo sh -c "ulimit -n 8192"
|
|
|
|
- name: Run Endurance Test (Group 1)
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
go test -tags stress \
|
|
-p=1 -v ./pkg/kernel -count=1 -timeout=360m -run '^(TestStressMemoryUsageForThreeNodes|TestStressStoreQuery5kMessagesWithPagination|TestStressHighThroughput10kPublish|TestStressLargePayloadEphemeralMessagesEndurance|TestStressConnectDisconnect1kIteration)$' | tee testlogs1.log
|
|
|
|
- name: Upload Test Logs (Group 1)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: endurance-logs-group1
|
|
path: testlogs1.log
|
|
|
|
- name: Upload Memory Metrics (Group 1)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: memory-metrics-group1
|
|
path: waku/px_load_metrics.csv
|
|
|
|
endurance2:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
|
|
- name: Initialize & update submodules
|
|
run: git submodule update --init --recursive
|
|
|
|
- name: Prepare third_party directory
|
|
run: |
|
|
sudo mkdir -p third_party
|
|
sudo chown $USER third_party
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: "1.23"
|
|
|
|
- name: Install Go dependencies
|
|
run: go mod download
|
|
|
|
- name: Vendor Go dependencies
|
|
run: go mod vendor
|
|
|
|
- name: Build libwaku
|
|
run: |
|
|
cd vendor/logos-delivery
|
|
make libwaku
|
|
|
|
- name: Build waku bindings
|
|
run: make -C pkg/kernel build
|
|
|
|
- name: Increase ulimit
|
|
run: sudo sh -c "ulimit -n 8192"
|
|
|
|
- name: Run Endurance Test (Group 2)
|
|
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
go test -tags stress \
|
|
-p=1 -v ./pkg/kernel -count=1 -timeout=360m -run '^(TestStressRandomNodesInMesh|TestStress2Nodes2kIterationTearDown|TestPeerExchangePXLoad)$' | tee testlogs2.log
|
|
|
|
- name: Upload Test Logs (Group 2)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: endurance-logs-group2
|
|
path: testlogs2.log
|
|
|
|
- name: Upload Memory Metrics (Group 2)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: memory-metrics-group2
|
|
path: waku/px_load_metrics.csv |