name: Publish Package on: push: branches: - "**" workflow_dispatch: jobs: publish: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install build tools run: | python -m pip install --upgrade pip python -m pip install build twine - name: Set CI package version run: | python - <<'PY' from pathlib import Path import os import re path = Path('tryton.cfg') text = path.read_text() match = re.search(r'(?m)^version=(.+)$', text) if not match: raise SystemExit('tryton.cfg has no version entry') base_version = match.group(1).strip() run_number = os.environ.get('GITHUB_RUN_NUMBER', '0') ci_version = f'{base_version}.post{run_number}' text = re.sub(r'(?m)^version=.+$', f'version={ci_version}', text) path.write_text(text) print(f'Package version: {ci_version}') PY - name: Build package run: | python -m build - name: Check package run: | python -m twine check dist/* - name: Check publishing credentials env: TWINE_USERNAME: ${{ secrets.REGISTRY_USER }} TWINE_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} run: | test -n "$TWINE_USERNAME" || { echo "Missing REGISTRY_USER secret"; exit 1; } test -n "$TWINE_PASSWORD" || { echo "Missing REGISTRY_PASSWORD secret"; exit 1; } - name: Publish to Gitea PyPI registry env: TWINE_USERNAME: ${{ secrets.REGISTRY_USER }} TWINE_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} run: | python -m twine upload \ --repository-url https://gitea.joseagrc.com/api/packages/tryton-do/pypi \ dist/*