logos-messaging-go-bindings/.github/workflows/Repeated_tests_endurancce.yml
Igor Sirotin 4fd33b6121
refactor: adopt golang-standards/project-layout (#111)
* 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>
2026-06-10 10:13:55 +01:00

68 lines
1.7 KiB
YAML

name: Repeated Test Suite
on:
workflow_dispatch:
jobs:
repeated-tests:
runs-on: [self-hosted, ubuntu-22.04]
timeout-minutes: 900
steps:
- name: Check out repository
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Initialize submodules
run: git submodule update --init --recursive
- name: Prepare third_party directory
run: |
mkdir -p third_party
chown $USER third_party
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.24"
- 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: Clean environment
run: go clean -cache
- name: Initialize CSV
run: echo "TestName,Iteration,Phase,HeapAlloc(KB),RSS(KB),Timestamp" > memory_metrics.csv
- name: Repeated test runs
run: |
set +e
for i in {1..80}; do
echo "Iteration $i: measuring memory BEFORE the tests..."
go run tools/memory_record.go --iteration $i --phase start
echo "Running tests (iteration $i)..."
go test -v -tags '!stress' ./...
echo "Iteration $i: measuring memory AFTER the tests..."
go run tools/memory_record.go --iteration $i --phase end
done
set -e
- name: Upload memory_metrics.csv
uses: actions/upload-artifact@v4
with:
name: memory_metrics
path: memory_metrics.csv