chore: подставлять URL с тегом при билде
All checks were successful
CI/CD Pipeline / docs (push) Successful in 24s
CI/CD Pipeline / docker (push) Successful in 37s
CI/CD Pipeline / deploy (push) Successful in 6s

- Dockerfile принимает VERSION_TAG через build-arg
- CI передаёт тег из job docs в job docker через outputs
- Docker-образ тегируется версией
- На сайте ссылка ведёт на ARCHITECTURE.md по тегу
This commit is contained in:
2026-04-19 01:21:44 +03:00
parent 3b3222c7a3
commit 856485a27e
2 changed files with 11 additions and 5 deletions

View File

@@ -8,6 +8,8 @@ jobs:
docs: docs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')" if: "!contains(github.event.head_commit.message, '[skip ci]')"
outputs:
new_tag: ${{ steps.tag.outputs.new_tag }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -31,14 +33,13 @@ jobs:
git add generated/ git add generated/
if git diff --cached --quiet; then if git diff --cached --quiet; then
echo "ARCHITECTURE.md не изменился, пропуск" echo "ARCHITECTURE.md не изменился, пропуск"
echo "CHANGED=false" >> $GITHUB_ENV
else else
git commit -m "docs: обновить ARCHITECTURE.md [skip ci]" git commit -m "docs: обновить ARCHITECTURE.md [skip ci]"
git push origin main git push origin main
echo "CHANGED=true" >> $GITHUB_ENV
fi fi
- name: Автоматический тег (semver patch) - name: Автоматический тег (semver patch)
id: tag
run: | run: |
LAST_TAG=$(git tag -l 'v*' --sort=-v:refname | head -1) LAST_TAG=$(git tag -l 'v*' --sort=-v:refname | head -1)
if [ -z "$LAST_TAG" ]; then if [ -z "$LAST_TAG" ]; then
@@ -51,7 +52,7 @@ jobs:
fi fi
git tag "$NEW_TAG" git tag "$NEW_TAG"
git push origin "$NEW_TAG" git push origin "$NEW_TAG"
echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT
echo "Создан тег: $NEW_TAG" echo "Создан тег: $NEW_TAG"
docker: docker:
@@ -90,6 +91,7 @@ jobs:
type=ref,event=branch type=ref,event=branch
type=sha,prefix= type=sha,prefix=
type=raw,value=latest,enable={{is_default_branch}} type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{ needs.docs.outputs.new_tag }}
- name: Build and push - name: Build and push
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
@@ -100,6 +102,8 @@ jobs:
push: true push: true
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION_TAG=${{ needs.docs.outputs.new_tag }}
provenance: false provenance: false
sbom: false sbom: false
@@ -148,7 +152,7 @@ jobs:
docker rmi "$OLD_IMAGE_ID" 2>/dev/null || true docker rmi "$OLD_IMAGE_ID" 2>/dev/null || true
fi fi
# Очистка: dangling-образы, неиспользуемые volumes, build-кеш # Очистка
docker image prune -af --filter "label=org.opencontainers.image.title=$CONTAINER" docker image prune -af --filter "label=org.opencontainers.image.title=$CONTAINER"
docker image prune -f docker image prune -f
docker builder prune -f 2>/dev/null || true docker builder prune -f 2>/dev/null || true

View File

@@ -1,9 +1,11 @@
FROM node:24-alpine AS build FROM node:24-alpine AS build
ARG VERSION_TAG=main
WORKDIR /app WORKDIR /app
COPY package*.json ./ COPY package*.json ./
RUN npm ci RUN npm ci
COPY . . 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 FROM caddy:2-alpine
COPY Caddyfile /etc/caddy/Caddyfile COPY Caddyfile /etc/caddy/Caddyfile