chore: подставлять URL с тегом при билде
- Dockerfile принимает VERSION_TAG через build-arg - CI передаёт тег из job docs в job docker через outputs - Docker-образ тегируется версией - На сайте ссылка ведёт на ARCHITECTURE.md по тегу
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user