Files
Pluto-SDR/.gitea/workflows/01-smoke.yml
Maxim a4eab6296e ci: offline-тесты на Gitea runner (smoke/guardrails/gftest/cross-build)
Четыре workflow по образу и подобию runner-tests/examples, уровень C:
- 01-smoke — runner жив, какие инструменты/либы есть в образе
- 02-guardrails — grep-страж жёстких правил CLAUDE.md (rate 1920000,
  header_len=12 на TX и RX, только local:, static/ARM-флаги, нет тяжёлых
  зависимостей); логика в scripts/ci_guardrails.sh, гоняется и локально
- 03-gftest — make gftest: нативная (не кросс-) сборка group_fec.c
  с -DGF_SELFTEST, 774 400 кейсов GF(256)
- 04-cross-build — make check-env && make all под armhf; приёмка
  ARM-тулчейна проверяется реальной компиляцией + разбором e_machine
  из ELF-заголовка (od), а не command -v — на Alpine/musl наличие
  файла ничего не доказывает, если это glibc-бинарь без ld-linux

E2E по радио и деплой на платы сознательно вне CI — нужны две живые
Pluto-платы, это остаётся ручным чек-листом (scripts/test_file_link.sh).
2026-07-15 10:32:38 +03:00

64 lines
2.0 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 01-smoke — информационный workflow.
# Доказывает только одно: runner жив и берёт задачи. Не падает от отсутствия
# инструмента — печатает "НЕТ" и идёт дальше. Работает на базовом образе
# runner (git+bash), пересборка не нужна.
name: 01-smoke
on:
push:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
smoke:
runs-on: host
timeout-minutes: 5
steps:
- name: Окружение job
run: |
echo "=== ОС job (не хоста!) ==="
cat /etc/os-release 2>/dev/null || echo "нет /etc/os-release"
uname -a
- name: Доступные инструменты
run: |
echo "=== Базовые ==="
for t in git bash sh; do
if command -v "$t" >/dev/null 2>&1; then
printf ' [ЕСТЬ] %s (%s)\n' "$t" "$(command -v "$t")"
else
printf ' [НЕТ] %s\n' "$t"
fi
done
echo ""
echo "=== Сборка (нужны 03-gftest/04-cross-build) ==="
for t in cc make arm-linux-gnueabihf-gcc; do
if command -v "$t" >/dev/null 2>&1; then
printf ' [ЕСТЬ] %s\n' "$t"
else
printf ' [НЕТ] %s (см. docs/RUNNER-IMAGE.md, если такой файл заведён)\n' "$t"
fi
done
- name: Кросс-либы $XARM (нужны 04-cross-build)
run: |
XARM="${XARM:-$HOME/xarm}"
echo "XARM=$XARM"
for lib in libliquid.a libfec.a libad9361.a libiio.a libfftw3f.a; do
if [ -f "$XARM/lib/$lib" ]; then
printf ' [ЕСТЬ] %s\n' "$lib"
else
printf ' [НЕТ] %s\n' "$lib"
fi
done