2 Commits

Author SHA1 Message Date
ki.sagidullin
d9d043ec8e feat(scripts): GCC_PATH из .gitea-creds для gcc в build-publish-ui.ps1
Some checks failed
CI / test (push) Failing after 1m14s
CI / build-and-package (amd64, linux) (push) Failing after 1m4s
CI / build-and-package (amd64, windows) (push) Successful in 25s
- проверка gcc перенесена после чтения creds (шаг 1a)
- GCC_PATH дописывается в PATH (абсолютный или относительно scripts/);
  без него — gcc из текущего PATH
- комментарии в шапку: GCC_PATH и уточнённый PROJECT_PATH
2026-08-21 23:12:20 +05:00
b87092aa98 Merge pull request 'feat(ui): filtr urovney logov + cap bufera 10MB' (#12) from feat/710a3625da1aa989 into main
Some checks failed
CI / test (push) Failing after 1m18s
CI / build-and-package (amd64, linux) (push) Failing after 1m2s
CI / build-and-package (amd64, windows) (push) Successful in 29s
2026-08-21 23:04:08 +05:00

View File

@@ -9,15 +9,21 @@ CI собирает ТОЛЬКО headless-linux (см. .gitea/workflows/ci.yaml)
Требования:
- Go с доступным C-компилятором (CGO_ENABLED=1). WinLibs gcc: см. память
`mem:toolchain/cgo-winlibs-gcc` — bin нужно добавить в PATH перед запуском.
`mem:binator/cgo-winlibs-gcc`. Каталог с gcc.exe можно задать через
GCC_PATH (ниже); если не задан — gcc должен быть уже в PATH.
- Файл scripts/.gitea-creds (git-ignored, см. ниже) с токенами.
Формат (по одной `ключ=значение` на строку):
GITEA_TOKEN=write:packages-токен
UPDATE_TOKEN=read:package-токен
GIT_MAIN_URL=http://gitea.hal9000.home
PROJECT_PATH=..\..\foo (опционально) корень собираемого проекта
относительно папки scripts/; без него —
папка рядом со скриптом
PROJECT_PATH=..\..\foo (опционально) корень проекта (где лежат cmd/
и go.mod); относительно папки scripts/ или
абсолютный; без него — папка рядом с
скриптом
GCC_PATH=D:\MinGW\bin (опционально) каталог, где лежит gcc.exe;
дописывается в PATH перед проверкой и
сборкой; абсолютный или относительно
scripts/; без него — gcc из текущего PATH
- Ветка уже запушена в `main` (VERSION = commit-<sha7> от текущего HEAD).
Пример:
@@ -32,14 +38,8 @@ $Package = "ratatoskr"
$Owner = "kamelion"
$Filename = "ratatoskr-windows-amd64.exe"
# --- 0. Проверка C-тулчейна ---
# --- 0. Проверка флага CGO_ENABLED (не зависит от creds) ---
if ($env:CGO_ENABLED -eq "0") { Write-Error "CGO_ENABLED=0 — нужен C-компилятор (MinGW). Уберите его из env." }
if (-not (Get-Command gcc -ErrorAction SilentlyContinue)) {
Write-Host "gcc не найден в PATH. Пример (WinLibs):"
Write-Host ' $p = "<...>\mingw64\bin"; $env:Path = "$p;$env:Path"'
Write-Error "C-компилятор gcc не найден."
}
Write-Host "[ok] gcc: $((gcc --version | Select-Object -First 1))"
# --- 1. Чтение секретов ---
if (-not (Test-Path $CredsFile)) {
@@ -59,7 +59,30 @@ $giteaUrl = $creds["GIT_MAIN_URL"]
if (-not $giteaToken) { Write-Error "В $CredsFile нет GITEA_TOKEN (нужен write:packages)." }
if (-not $giteaUrl) { Write-Error "В $CredsFile нет GIT_MAIN_URL." }
# --- 1a. Корень целевого проекта ---
# --- 1a. C-тулчейн (gcc): GCC_PATH из creds дописывается в PATH ---
# Путь абсолютный либо относительно папки scripts/; без GCC_PATH — gcc
# берётся из уже установленного PATH.
$gccPath = $creds["GCC_PATH"]
if ($gccPath -ne "" -and $gccPath) {
$gccAbs = Join-Path $ScriptDir $gccPath
$gccBin = (Resolve-Path -LiteralPath $gccAbs -ErrorAction SilentlyContinue).Path
if (-not $gccBin) {
$gccAbs = $gccPath # не нашлось относительно scripts/ — пробуем как абсолютный
$gccBin = (Resolve-Path -LiteralPath $gccAbs -ErrorAction SilentlyContinue).Path
}
if (-not $gccBin) { Write-Error "GCC_PATH не найден: $gccPath (или относительно $ScriptDir)" }
$env:Path = "$gccBin;$env:Path"
Write-Host "[gcc] PATH += $gccBin"
}
if (-not (Get-Command gcc -ErrorAction SilentlyContinue)) {
Write-Host "gcc не найден в PATH. Пример (WinLibs):"
Write-Host ' D:\MinGW\bin, затем:
GCC_PATH=D:\MinGW\bin — в scripts/.gitea-creds'
Write-Error "C-компилятор gcc не найден."
}
Write-Host "[ok] gcc: $((gcc --version | Select-Object -First 1))"
# --- 1b. Корень целевого проекта ---
# PROJECT_PATH из .gitea-creds (относительно папки scripts/) либо, если не задан,
# папка рядом со скриптом (прежнее поведение).
$projPath = $creds["PROJECT_PATH"]