mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2026-11-09 17:06:40 +00:00
Исправления в ветке main
This commit is contained in:
@@ -1 +1 @@
|
||||
v2.0.28
|
||||
v2.1.5
|
||||
|
||||
74
deploy/release-goreleaser-no-copy.sh
Normal file
74
deploy/release-goreleaser-no-copy.sh
Normal 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 "Готово."
|
||||
@@ -2,8 +2,6 @@
|
||||
set -euo pipefail
|
||||
|
||||
# release-goreleaser.sh
|
||||
# Копирует deploy/.goreleaser.yaml в корень, запускает релиз и удаляет файл.
|
||||
#
|
||||
# Использование:
|
||||
# deploy/release-goreleaser.sh # обычный релиз на GitHub (нужен GITHUB_TOKEN)
|
||||
# deploy/release-goreleaser.sh --snapshot # локальный снепшот без публикации
|
||||
@@ -21,7 +19,7 @@ if ! command -v goreleaser >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
if [[ ! -f "$SRC_CFG" ]]; then
|
||||
err "Не найден файл конфигурации: $SRC_CFG"
|
||||
err "Не найден исходный файл конфигурации: $SRC_CFG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user