ci(release): workflow публикации пакета по тегу + версия 0.2.1
Some checks failed
Publish elexam-core / publish (push) Failing after 2s
Some checks failed
Publish elexam-core / publish (push) Failing after 2s
This commit is contained in:
parent
510b988a38
commit
3eaa0b74ba
47
.gitea/workflows/release.yml
Normal file
47
.gitea/workflows/release.yml
Normal file
@ -0,0 +1,47 @@
|
||||
name: Publish elexam-core
|
||||
|
||||
# Публикация пакета в приватный PyPI-реестр Gitea по git-тегу vX.Y.Z.
|
||||
# Runner: self-hosted host-режим (label elexam-host), образ с python+uv, без docker.sock.
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: elexam-host
|
||||
steps:
|
||||
# Node в раннере нет, поэтому checkout делаем вручную через git clone.
|
||||
# github.token — автоматический токен job'а с доступом на чтение репозитория.
|
||||
- name: Clone repository at tag
|
||||
run: |
|
||||
rm -rf src-checkout
|
||||
git clone --depth 1 --branch "${{ github.ref_name }}" \
|
||||
"https://x-access-token:${{ github.token }}@git.dregomor.ru/${{ github.repository }}.git" \
|
||||
src-checkout
|
||||
|
||||
# Защита источника истины: тег обязан совпадать с version в pyproject.toml.
|
||||
- name: Verify tag matches package version
|
||||
working-directory: src-checkout
|
||||
run: |
|
||||
VER=$(grep -m1 '^version' pyproject.toml | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
TAG="${{ github.ref_name }}"
|
||||
echo "pyproject version: $VER | git tag: $TAG"
|
||||
if [ "v$VER" != "$TAG" ]; then
|
||||
echo "::error::Тег $TAG не совпадает с версией пакета v$VER — публикация отменена"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Build (sdist + wheel)
|
||||
working-directory: src-checkout
|
||||
run: uv build
|
||||
|
||||
# Токен PKG_PUBLISH_TOKEN (scope write:package) хранится в Actions secrets,
|
||||
# в логах маскируется. Реестр отклонит повторную заливку уже существующей версии.
|
||||
- name: Publish to Gitea PyPI
|
||||
working-directory: src-checkout
|
||||
run: |
|
||||
uv publish \
|
||||
--publish-url https://git.dregomor.ru/api/packages/Returner_org/pypi \
|
||||
-u Returner_org -p "${{ secrets.PKG_PUBLISH_TOKEN }}" \
|
||||
dist/*
|
||||
@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "elexam-core"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
description = "Общая библиотека платформы Elexam: envelope ответа, trace_id, structlog, каталог ошибок, ULID, http-клиент"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.14"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user