From 856485a27ef13d6f5db8f5f430e92a1423945729 Mon Sep 17 00:00:00 2001 From: "S.Gromov" Date: Sun, 19 Apr 2026 01:21:44 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20=D0=BF=D0=BE=D0=B4=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D1=8F=D1=82=D1=8C=20URL=20=D1=81=20=D1=82=D0=B5?= =?UTF-8?q?=D0=B3=D0=BE=D0=BC=20=D0=BF=D1=80=D0=B8=20=D0=B1=D0=B8=D0=BB?= =?UTF-8?q?=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dockerfile принимает VERSION_TAG через build-arg - CI передаёт тег из job docs в job docker через outputs - Docker-образ тегируется версией - На сайте ссылка ведёт на ARCHITECTURE.md по тегу --- .gitea/workflows/ci.yml | 12 ++++++++---- Dockerfile | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index a1d1a48..16de2f7 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -8,6 +8,8 @@ jobs: docs: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[skip ci]')" + outputs: + new_tag: ${{ steps.tag.outputs.new_tag }} steps: - name: Checkout uses: actions/checkout@v4 @@ -31,14 +33,13 @@ jobs: git add generated/ if git diff --cached --quiet; then echo "ARCHITECTURE.md не изменился, пропуск" - echo "CHANGED=false" >> $GITHUB_ENV else git commit -m "docs: обновить ARCHITECTURE.md [skip ci]" git push origin main - echo "CHANGED=true" >> $GITHUB_ENV fi - name: Автоматический тег (semver patch) + id: tag run: | LAST_TAG=$(git tag -l 'v*' --sort=-v:refname | head -1) if [ -z "$LAST_TAG" ]; then @@ -51,7 +52,7 @@ jobs: fi git tag "$NEW_TAG" git push origin "$NEW_TAG" - echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV + echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT echo "Создан тег: $NEW_TAG" docker: @@ -90,6 +91,7 @@ jobs: type=ref,event=branch type=sha,prefix= type=raw,value=latest,enable={{is_default_branch}} + type=raw,value=${{ needs.docs.outputs.new_tag }} - name: Build and push uses: docker/build-push-action@v5 @@ -100,6 +102,8 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + build-args: | + VERSION_TAG=${{ needs.docs.outputs.new_tag }} provenance: false sbom: false @@ -148,7 +152,7 @@ jobs: docker rmi "$OLD_IMAGE_ID" 2>/dev/null || true fi - # Очистка: dangling-образы, неиспользуемые volumes, build-кеш + # Очистка docker image prune -af --filter "label=org.opencontainers.image.title=$CONTAINER" docker image prune -f docker builder prune -f 2>/dev/null || true diff --git a/Dockerfile b/Dockerfile index 8577c52..7aff2dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,11 @@ FROM node:24-alpine AS build +ARG VERSION_TAG=main WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . -RUN npm run build +RUN sed -i "s|raw/branch/main/generated|raw/tag/${VERSION_TAG}/generated|" docs/ru/index.md \ + && npm run build FROM caddy:2-alpine COPY Caddyfile /etc/caddy/Caddyfile