Skip to content

chore: remove unused .clangd file #99

chore: remove unused .clangd file

chore: remove unused .clangd file #99

name: Autobahn Websocket Client
on:
push:
branches: ["main", "feature/*"]
paths-ignore: ["**/*.md", "docs/**"]
pull_request:
branches: ["main"]
paths-ignore: ["**/*.md", "docs/**"]
workflow_dispatch:
jobs:
autobahn:
name: Build & Test
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
build_type: [Debug]
clang: [20]
std: [23]
env:
BUILD_DIR: build
REPORTS_DIR: autobahn-reports
FUZZING_CONTAINER: autobahn-fuzzingserver
CC: clang-${{matrix.clang}}
CXX: clang++-${{matrix.clang}}
AUTOBAHN_SERVER: ws://127.0.0.1:9001
AUTOBAHN_AGENT: aero
steps:
- uses: actions/checkout@v6
- name: Setup Clang
uses: aminya/setup-cpp@v1
with:
compiler: llvm
llvm-version: ${{matrix.clang}}
- name: Install libc++
run: |
sudo apt-get update
sudo apt-get install -y \
libc++-${{matrix.clang}}-dev \
libc++abi-${{matrix.clang}}-dev \
libunwind-${{matrix.clang}}-dev \
python3-pip
- name: Configure CMake
run: |
cmake -S . -B "$BUILD_DIR" \
-DCMAKE_BUILD_TYPE="${{matrix.build_type}}" \
-DCMAKE_CXX_STANDARD="${{matrix.std}}" \
-DCMAKE_C_COMPILER="$CC" \
-DCMAKE_CXX_COMPILER="$CXX" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DCMAKE_EXE_LINKER_FLAGS="-stdlib=libc++ -lc++abi" \
-DAERO_BUILD_TESTS=OFF
- name: Build
run: cmake --build "$BUILD_DIR" --parallel
- name: Start Autobahn fuzzingserver
run: |
mkdir -p "$REPORTS_DIR"
docker run -d --rm \
--name "$FUZZING_CONTAINER" \
-p 9001:9001 \
-p 8080:8080 \
-v "${{github.workspace}}/.github/autobahn:/config" \
-v "${{github.workspace}}/${REPORTS_DIR}:/reports" \
crossbario/autobahn-testsuite \
wstest -m fuzzingserver -s /config/fuzzingserver.json
- name: Wait for fuzzingserver
run: |
python3 -m pip install --upgrade pip websockets
python3 - <<'PY'
import asyncio
import websockets
async def wait_ready():
for _ in range(60):
try:
async with websockets.connect("ws://127.0.0.1:9001/getCaseCount") as websocket:
await websocket.recv()
return
except Exception:
await asyncio.sleep(1)
raise SystemExit(1)
asyncio.run(wait_ready())
PY
- name: Run client
run: ./$BUILD_DIR/examples/websocket/websocket_autobahn_client "${AUTOBAHN_SERVER}" "${AUTOBAHN_AGENT}"
- name: Validate autobahn results
run: |
python3 .github/autobahn/validate_reports.py \
--agent "$AUTOBAHN_AGENT" \
--server "$AUTOBAHN_SERVER" \
--index "${{github.workspace}}/${REPORTS_DIR}/clients/index.json"
- name: Upload reports
if: always()
uses: actions/upload-artifact@v4
with:
name: autobahn-reports
path: ${{env.REPORTS_DIR}}
- name: Stop fuzzingserver
if: always()
run: |
docker logs "$FUZZING_CONTAINER" || true
docker stop "$FUZZING_CONTAINER" || true