From 4ee428a6fd428354d00717d129cb6191754cd5c7 Mon Sep 17 00:00:00 2001 From: Petr Polezhaev Date: Tue, 29 Sep 2026 16:36:26 +0300 Subject: [PATCH] =?UTF-8?q?ha(ci):=20publish-=D1=81=D0=BA=D1=80=D0=B8?= =?UTF-8?q?=D0=BF=D1=82=20=D0=BD=D0=B0=20POSIX=20sh=20=E2=80=94=20bash=20?= =?UTF-8?q?=D0=B2=20Alpine=20=D0=BD=D0=B5=20=D0=BD=D1=83=D0=B6=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit set -o pipefail убран (единственный bashism), shebang /bin/sh; musl-джоб вызывает sh scripts/publish-gitea-pypi.sh, bash из apk-списка исключён. Логика проверена на фейковом индексе: уже загруженный linux-wheel пропускается, musl-wheel и sdist загружаются. --- .gitea/workflows/publish-pyfglair.yaml | 6 +++--- scripts/publish-gitea-pypi.sh | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/publish-pyfglair.yaml b/.gitea/workflows/publish-pyfglair.yaml index f9720ae..2ea1765 100644 --- a/.gitea/workflows/publish-pyfglair.yaml +++ b/.gitea/workflows/publish-pyfglair.yaml @@ -83,7 +83,7 @@ jobs: TOKEN: ${{ secrets.PYPI_TOKEN }} GITEA_JOB_TOKEN: ${{ secrets.GITEA_TOKEN }} PYPI_USER: ${{ secrets.PYPI_USER }} - run: bash scripts/publish-gitea-pypi.sh + run: sh scripts/publish-gitea-pypi.sh build-musllinux: runs-on: ubuntu-latest @@ -95,7 +95,7 @@ jobs: REPO_URL: ${{ github.server_url }}/${{ github.repository }}.git SHA: ${{ github.sha }} run: | - apk add --no-cache git cmake ninja g++ make curl libstdc++-dev bash + apk add --no-cache git cmake ninja g++ make curl libstdc++-dev if [ -z "$REPO_URL" ] || [ "$REPO_URL" = "/.git" ]; then echo "::error::Пустой github.server_url/repository — задайте контексты или соберите musllinux вручную (docs/RELEASE_HA.md §1.4)" exit 1 @@ -132,4 +132,4 @@ jobs: GITEA_JOB_TOKEN: ${{ secrets.GITEA_TOKEN }} PYPI_USER: ${{ secrets.PYPI_USER }} DIST_DIR: /src/dist - run: cd /src && bash scripts/publish-gitea-pypi.sh + run: cd /src && sh scripts/publish-gitea-pypi.sh diff --git a/scripts/publish-gitea-pypi.sh b/scripts/publish-gitea-pypi.sh index a273d07..e0e7fe2 100644 --- a/scripts/publish-gitea-pypi.sh +++ b/scripts/publish-gitea-pypi.sh @@ -1,7 +1,8 @@ -#!/usr/bin/env bash +#!/bin/sh # Публикация файлов из DIST_DIR в PyPI-реестр пакетов Gitea. # Уже загруженные (по имени файла в simple-индексе) пропускаются: twine 7 не # поддерживает --skip-existing для не-PyPI репозиториев. +# POSIX sh (Alpine busybox/dash) — внешний bash не требуется. # # Переменные: # TOKEN (или GITEA_JOB_TOKEN) — обязательный токен (PAT write:package или @@ -10,7 +11,7 @@ # SERVER, OWNER — Gitea и владелец; если не заданы, берутся # из git remote (origin) # PYPI_USER — имя пользователя (по умолчанию актор) -set -euo pipefail +set -eu DIST_DIR="${DIST_DIR:-dist}" TOKEN="${TOKEN:-${GITEA_JOB_TOKEN:-}}"