From 4779c4bca489497b0af3c9048b5ea81657c40040 Mon Sep 17 00:00:00 2001 From: Anton Kuznetcov Date: Tue, 28 Oct 2025 19:09:57 +0600 Subject: [PATCH] chore: temp goreleaser config [skip ci] --- .goreleaser.yaml | 32 ++++++++++++++++++++++++ deploy/.goreleaser.yaml | 9 ++++--- deploy/release-goreleaser.sh | 48 ++++++++++++++++++++++++++++++++++-- 3 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 .goreleaser.yaml diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..1a11f75 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,32 @@ +# Goreleaser configuration version 2 +version: 2 + +builds: + - id: lcg + binary: "lcg_{{ .Version }}" + goos: + - linux + - windows + - darwin + goarch: + - amd64 + - arm64 + env: + - CGO_ENABLED=0 + ldflags: + - -s -w + - -X main.version={{.Version}} + - -X main.commit={{.Commit}} + - -X main.date={{.Date}} + main: . + dir: . + +archives: + - id: lcg + ids: + - lcg + formats: + - binary + name_template: "{{ .Binary }}_{{ .Os }}_{{ .Arch }}" + files: + - "lcg_{{ .Version }}" diff --git a/deploy/.goreleaser.yaml b/deploy/.goreleaser.yaml index d0f5909..1a11f75 100644 --- a/deploy/.goreleaser.yaml +++ b/deploy/.goreleaser.yaml @@ -6,11 +6,11 @@ builds: binary: "lcg_{{ .Version }}" goos: - linux + - windows + - darwin goarch: - amd64 - arm64 - - windows - - darwin env: - CGO_ENABLED=0 ldflags: @@ -23,9 +23,10 @@ builds: archives: - id: lcg - builds: + ids: - lcg - format: binary + formats: + - binary name_template: "{{ .Binary }}_{{ .Os }}_{{ .Arch }}" files: - "lcg_{{ .Version }}" diff --git a/deploy/release-goreleaser.sh b/deploy/release-goreleaser.sh index 0aa084a..55c6066 100644 --- a/deploy/release-goreleaser.sh +++ b/deploy/release-goreleaser.sh @@ -49,6 +49,12 @@ cp "$SRC_CFG" "$DST_CFG" pushd "$ROOT_DIR" >/dev/null +EXTRA_FLAGS=() +PREV_HEAD="$(git rev-parse HEAD 2>/dev/null || echo "")" + +git add . +git commit --amend --no-edit || true + ## Версию берём из deploy/VERSION.txt или VERSION.txt в корне VERSION_FILE="$ROOT_DIR/deploy/VERSION.txt" [[ -f "$VERSION_FILE" ]] || VERSION_FILE="$ROOT_DIR/VERSION.txt" @@ -78,6 +84,25 @@ create_and_push_tag() { fi } +move_tag_to_head() { + local tag="$1" + if [[ -z "$tag" ]]; then + return 0 + fi + if git rev-parse "$tag" >/dev/null 2>&1; then + log "Переношу тег $tag на текущий коммит (HEAD)" + git tag -f "$tag" HEAD + if [[ "${NO_GIT_PUSH:-false}" != "true" ]]; then + log "Форс‑пуш тега $tag на origin" + git push -f origin "$tag" + else + log "Пропущен пуш тега (NO_GIT_PUSH=true)" + fi + else + log "Тега $tag нет — пропускаю перенос" + fi +} + fetch_token_from_k8s() { export KUBECONFIG=/home/su/.kube/config_hlab local ns="${K8S_NAMESPACE:-flux-system}" @@ -94,11 +119,21 @@ fetch_token_from_k8s() { if [[ "$MODE" == "snapshot" ]]; then log "Запуск goreleaser (snapshot, без публикации)" - goreleaser release --snapshot --clean --config "$DST_CFG" + goreleaser release --snapshot --clean --config "$DST_CFG" "${EXTRA_FLAGS[@]}" else # Если версия определена и тега нет — создадим (goreleaser ориентируется на теги) if [[ -n "${GORELEASER_CURRENT_TAG:-}" ]]; then create_and_push_tag "$GORELEASER_CURRENT_TAG" + # Перемещаем тег на текущий HEAD (если существовал ранее, закрепим на последнем коммите) + move_tag_to_head "$GORELEASER_CURRENT_TAG" + else + # Если версия не задана, попробуем взять последний существующий тег и перенести его на HEAD + LAST_TAG="$(git describe --tags --abbrev=0 2>/dev/null || true)" + if [[ -n "$LAST_TAG" ]]; then + move_tag_to_head "$LAST_TAG" + export GORELEASER_CURRENT_TAG="$LAST_TAG" + log "Использую последний тег: $LAST_TAG" + fi fi if [[ -z "${GITHUB_TOKEN:-}" ]]; then log "GITHUB_TOKEN не задан — пробую получить из k8s секрета (${K8S_NAMESPACE:-flux-system}/${K8S_SECRET_NAME:-git-secrets}, ключ: password)" @@ -116,11 +151,20 @@ else fi fi log "Запуск goreleaser (публикация на GitHub)" - goreleaser release --clean --config "$DST_CFG" + goreleaser release --clean --config "$DST_CFG" "${EXTRA_FLAGS[@]}" fi popd >/dev/null +# Откатываем временный коммит, если он был +if [[ "${TEMP_COMMIT_DONE:-false}" == "true" && -n "$PREV_HEAD" ]]; then + if git reset --soft "$PREV_HEAD" >/dev/null 2>&1; then + log "Откатил временный коммит" + else + log "Не удалось откатить временный коммит — проверьте историю вручную" + fi +fi + log "Готово."