Files
Pluto-SDR/.gitea/workflows/03-gftest.yml
Maxim a66cc4408b ci: 03-gftest и 04-cross-build на runs-on: armhf (cross-builder)
- 03-gftest: runs-on host → armhf; текст ошибки инструментов обобщён
  (build-essential вместо apk build-base)
- 04-cross-build: runs-on host → armhf; приёмка тулчейна остаётся
  реальной ARM-компиляцией + разбором e_machine

01-smoke/02-guardrails остаются на host (Alpine act_runner_tools) — не тронуты.
2026-07-15 13:12:52 +03:00

63 lines
2.5 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.

# 03-gftest — проверочный workflow.
# Нативная (не кросс-) сборка group_fec.c с -DGF_SELFTEST через хостовый cc
# (makefile: цель gftest) и прогон самопроверки GF(256): 774 400 кейсов
# восстановления группового FEC 16+2. Модуль тянет только <string.h>/
# <stdint.h>/<stdio.h>/<stdlib.h> — компилируется любым gcc.
#
# Идёт на runs-on: armhf — cross-builder несёт нативный x86 gcc (build-essential).
# Требует в образе: cc + make. Пока их нет — job падает на шаге "Проверить
# инструменты" с понятным сообщением, а не посреди сборки.
name: 03-gftest
on:
push:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
gftest:
runs-on: armhf
timeout-minutes: 5
steps:
- name: Проверить инструменты (реальная компиляция, не command -v)
# Наличие файла ничего не доказывает (glibc-бинарь без ld-linux даёт
# обманчивый not found) — поэтому компилируем и запускаем крошечный .c,
# а не просто ищем cc/make на PATH.
run: |
for t in cc make; do
command -v "$t" >/dev/null 2>&1 || {
echo "ОШИБКА: '$t' нет в образе cross-раннера — build-essential в runner-image/Dockerfile"
exit 1
}
done
tmp=$(mktemp -d)
printf 'int main(void){return 42-42;}\n' > "$tmp/probe.c"
cc -O2 "$tmp/probe.c" -o "$tmp/probe"
"$tmp/probe"
echo "OK: cc реально компилирует и линкует исполняемый файл"
rm -rf "$tmp"
- name: Получить код репозитория
env:
REPO_TOKEN: ${{ github.token }}
run: |
rm -rf repo
git clone --quiet "http://x-access-token:${REPO_TOKEN}@localhost:3000/${GITHUB_REPOSITORY}.git" repo
git -C repo checkout --quiet "$GITHUB_SHA"
- name: make gftest (774 400 кейсов GF(256))
run: make -C repo gftest
- name: Убрать за собой
if: always()
run: rm -rf repo