Files
f7cloud_mobile/scripts/package-source.sh
T
b-dev-mobile f0708a30ac
CI / verify (push) Has been cancelled
CI / release (push) Has been cancelled
Этап 1: CI (Gitea Actions) + GPL corresponding source (п.4c)
- .gitea/workflows/ci.yml: push/PR → testDebugUnitTest+lintRelease+assembleDebug;
  тег v* → подписанный assembleRelease + архив исходников в Gitea Release.
  Gitea 1.26.1 поддерживает Actions. Self-hosted раннер (метка f7-android),
  т.к. проект тяжёлый (WebRTC) и нужен тёплый Gradle-кэш.
- scripts/package-source.sh: GPL corresponding source (§6) — архив всего дерева
  вкл. vendor talk-android (GPL), LICENSE, NOTICE. Проверен: 6.7 МБ, 2353 файла.
  Закрывает п.4c, работает и вручную до появления раннера.
- docs/CI.md: пайплайн, регистрация раннера, secrets.

НЕ активно до регистрации раннера на инфре B (нужен Gitea-админ для токена).
2026-07-07 22:32:38 +00:00

25 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# GPL corresponding source: архив ВСЕГО исходного кода распространяемой сборки
# (включая vendor/talk-android — он под GPL). Обязательство GPLv3 §6: к каждой
# распространяемой сборке публиковать соответствующий исходник.
#
# Использование: scripts/package-source.sh [OUT_DIR] (по умолчанию ./dist)
set -euo pipefail
OUT_DIR="${1:-dist}"
mkdir -p "$OUT_DIR"
# версия из app/build.gradle (versionName/versionCode)
VNAME=$(grep -oE "versionName '[^']+'" app/build.gradle | grep -oE "[0-9][0-9.]*" | head -1)
VCODE=$(grep -oE "versionCode [0-9]+" app/build.gradle | grep -oE "[0-9]+" | head -1)
REV=$(git rev-parse --short HEAD)
NAME="f7cloud-mobile-v${VNAME:-0}-${VCODE:-0}-${REV}-source.tar.gz"
# git archive включает всё отслеживаемое дерево (в т.ч. vendor/talk-android, LICENSE, NOTICE.md).
# Секреты в дерево не входят (google-services.json/keystore в .gitignore).
git archive --format=tar.gz --prefix="f7cloud-mobile-${VNAME}/" -o "$OUT_DIR/$NAME" HEAD
echo "Corresponding source: $OUT_DIR/$NAME"
echo " размер: $(du -h "$OUT_DIR/$NAME" | cut -f1)"
echo " включает vendor/talk-android (GPL), LICENSE, NOTICE.md"