Исправления в ветке main

This commit is contained in:
2026-10-22 12:42:32 +06:00
parent 933e5ccb58
commit 9b05edc263
31 changed files with 2433 additions and 114 deletions

View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
set -euo pipefail
# release-goreleaser-no-copy.sh
# Использование:
# deploy/release-goreleaser-no-copy.sh <TAG> # релиз на GitHub с указанным тегом (нужен GITHUB_TOKEN)
ROOT_DIR="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
SRC_CFG="$ROOT_DIR/deploy/.goreleaser.yaml"
log() { echo -e "\033[36m[release]\033[0m $*"; }
err() { echo -e "\033[31m[error]\033[0m $*" >&2; }
# Проверка обязательного параметра - тега
if [[ -z "${1:-}" ]]; then
err "Не указан тег. Использование: $0 <TAG>"
exit 1
fi
TAG="$1"
# Проверка наличия тега в git
if ! git rev-parse "$TAG" >/dev/null 2>&1; then
err "Тег '$TAG' не найден в git репозитории"
exit 1
fi
log "Использую тег: $TAG"
export GORELEASER_CURRENT_TAG="$TAG"
if ! command -v goreleaser >/dev/null 2>&1; then
err "goreleaser не найден. Установите: https://goreleaser.com/install/"
exit 1
fi
if [[ ! -f "$SRC_CFG" ]]; then
err "Не найден исходный файл конфигурации: $SRC_CFG"
exit 1
fi
fetch_token_from_k8s() {
export KUBECONFIG=/home/su/.kube/config_hlab
local ns="${K8S_NAMESPACE:-flux-system}"
local name="${K8S_SECRET_NAME:-git-secrets}"
# Предпочитаем jq (как в примере), при отсутствии используем jsonpath + base64 -d
if command -v jq >/dev/null 2>&1; then
kubectl get secret "$name" -n "$ns" -o json \
| jq -r '.data.password | @base64d'
else
kubectl get secret "$name" -n "$ns" -o jsonpath='{.data.password}' \
| base64 -d 2>/dev/null || true
fi
}
if [[ -z "${GITHUB_TOKEN:-}" ]]; then
log "GITHUB_TOKEN не задан — пробую получить из k8s секрета (${K8S_NAMESPACE:-flux-system}/${K8S_SECRET_NAME:-git-secrets}, ключ: password)"
if ! command -v kubectl >/dev/null 2>&1; then
err "kubectl не найден, а GITHUB_TOKEN не задан. Установите kubectl или экспортируйте GITHUB_TOKEN."
exit 1
fi
TOKEN_FROM_K8S="$(fetch_token_from_k8s || true)"
if [[ -n "$TOKEN_FROM_K8S" && "$TOKEN_FROM_K8S" != "null" ]]; then
export GITHUB_TOKEN="$TOKEN_FROM_K8S"
log "GITHUB_TOKEN получен из секрета Kubernetes."
else
err "Не удалось получить GITHUB_TOKEN из секрета Kubernetes. Экспортируйте GITHUB_TOKEN и повторите."
exit 1
fi
fi
log "Запуск goreleaser (публикация на GitHub)"
goreleaser release --clean --config "$SRC_CFG" "${EXTRA_FLAGS[@]:-}"
log "Готово."