Fix: убрана зависимость от make/zip/python3 в CI workflow
This commit is contained in:
@@ -118,10 +118,52 @@ jobs:
|
||||
- name: "Кросс-компиляция для всех платформ (16 бинарников)"
|
||||
shell: bash
|
||||
run: |
|
||||
make build-all VERSION=${{ steps.ver.outputs.version }}
|
||||
VER="${{ steps.ver.outputs.version }}"
|
||||
LDFLAGS="-s -w -X main.version=${VER}"
|
||||
GOFLAGS="-trimpath"
|
||||
CMD="./cmd/genaudiobookinfo"
|
||||
OUT="${BUILD_DIR}"
|
||||
mkdir -p "${OUT}"
|
||||
|
||||
build() {
|
||||
local goos=$1 goarch=$2 suffix=$3 extra_env="$4"
|
||||
local outfile="${OUT}/${APP_NAME}-${suffix}"
|
||||
echo ">>> ${goos}/${goarch} → ${APP_NAME}-${suffix}"
|
||||
env GOOS=${goos} GOARCH=${goarch} ${extra_env} \
|
||||
go build ${GOFLAGS} -ldflags "${LDFLAGS}" -o "${outfile}" ${CMD}
|
||||
}
|
||||
|
||||
# Linux
|
||||
build linux amd64 linux-amd64
|
||||
build linux 386 linux-386
|
||||
build linux arm64 linux-arm64
|
||||
build linux arm linux-armv7 "GOARM=7"
|
||||
build linux mips linux-mips "GOMIPS=softfloat"
|
||||
build linux mipsle linux-mipsle "GOMIPS=softfloat"
|
||||
build linux riscv64 linux-riscv64
|
||||
|
||||
# macOS
|
||||
build darwin amd64 darwin-amd64
|
||||
build darwin arm64 darwin-arm64
|
||||
|
||||
# Windows
|
||||
build windows amd64 windows-amd64.exe
|
||||
build windows 386 windows-386.exe
|
||||
build windows arm64 windows-arm64.exe
|
||||
|
||||
# FreeBSD
|
||||
build freebsd amd64 freebsd-amd64
|
||||
build freebsd arm64 freebsd-arm64
|
||||
|
||||
# OpenBSD
|
||||
build openbsd amd64 openbsd-amd64
|
||||
|
||||
# NetBSD
|
||||
build netbsd amd64 netbsd-amd64
|
||||
|
||||
echo ""
|
||||
echo "Собранные бинарники:"
|
||||
ls -lh ${BUILD_DIR}/
|
||||
echo "Собранные бинарники ($(ls ${OUT}/ | wc -l)):"
|
||||
ls -lh ${OUT}/
|
||||
|
||||
# ── Архивы + контрольные суммы ──────────────────────────────────────
|
||||
- name: "Создание архивов и контрольных сумм"
|
||||
@@ -137,7 +179,13 @@ jobs:
|
||||
*.exe)
|
||||
ARCNAME="${f%.exe}.zip"
|
||||
echo " ${f} → archives/${ARCNAME}"
|
||||
zip "archives/${ARCNAME}" "$f"
|
||||
if command -v zip &>/dev/null; then
|
||||
zip "archives/${ARCNAME}" "$f"
|
||||
else
|
||||
# Fallback: tar.gz вместо zip если zip не установлен
|
||||
ARCNAME="${f%.exe}.tar.gz"
|
||||
tar -czf "archives/${ARCNAME}" "$f"
|
||||
fi
|
||||
;;
|
||||
${APP_NAME}-*)
|
||||
ARCNAME="${f}.tar.gz"
|
||||
@@ -318,11 +366,19 @@ jobs:
|
||||
echo "══════════════════════════════════════"
|
||||
|
||||
# ── JSON-кодирование тела релиза ───────────────────────────────
|
||||
BODY_JSON=$(python3 -c "
|
||||
# JSON-кодирование: python3 или чистый bash
|
||||
if command -v python3 &>/dev/null; then
|
||||
BODY_JSON=$(python3 -c "
|
||||
import json
|
||||
with open('/tmp/release_body.md', 'r') as f:
|
||||
print(json.dumps(f.read()))
|
||||
")
|
||||
else
|
||||
# Чистый bash: экранируем для JSON
|
||||
BODY_RAW=$(cat /tmp/release_body.md)
|
||||
BODY_JSON=$(printf '%s' "$BODY_RAW" | sed 's/\\/\\\\/g; s/"/\\"/g; s/ /\\t/g' | awk '{printf "%s\\n", $0}' | sed 's/\\n$//')
|
||||
BODY_JSON="\"${BODY_JSON}\""
|
||||
fi
|
||||
|
||||
# ── Создание релиза через Gitea API ────────────────────────────
|
||||
echo ""
|
||||
@@ -341,13 +397,18 @@ jobs:
|
||||
\"prerelease\": false
|
||||
}")
|
||||
|
||||
RELEASE_ID=$(echo "$RELEASE_JSON" | \
|
||||
python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('id',''))" 2>/dev/null || true)
|
||||
# Извлекаем ID релиза: python3 или grep/sed
|
||||
if command -v python3 &>/dev/null; then
|
||||
RELEASE_ID=$(echo "$RELEASE_JSON" | \
|
||||
python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('id',''))" 2>/dev/null || true)
|
||||
else
|
||||
RELEASE_ID=$(echo "$RELEASE_JSON" | grep -o '"id":[0-9]*' | head -1 | grep -o '[0-9]*')
|
||||
fi
|
||||
|
||||
if [ -z "$RELEASE_ID" ] || [ "$RELEASE_ID" = "None" ]; then
|
||||
echo "ОШИБКА: не удалось создать релиз!"
|
||||
echo "Ответ API:"
|
||||
echo "$RELEASE_JSON" | python3 -m json.tool 2>/dev/null || echo "$RELEASE_JSON"
|
||||
echo "$RELEASE_JSON"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user