/
githubmirror
/
ydb-sqlalchemy
Обзор
Документация
Войти
/
githubmirror
/
ydb-sqlalchemy
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/python-publish.yml
113 строк
4 KB
Oleg Ovcharuk
Update python-publish.yml
28 ноя 2024, 11:29
Не верифицирован
28 ноя 2024, 11:29
013c9a9
Код
Авторство
О чём код?
# This workflow will upload a Python Package using Twine when a release is created # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries # This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. name: Publish package release on: workflow_dispatch: inputs: version-change: description: Version part required: true type: choice default: patch options: - minor - patch beta: description: Is beta version required: true type: boolean default: False jobs: publish: env: VERSION_CHANGE: ${{ github.event.inputs.version-change }} WITH_BETA: ${{ github.event.inputs.beta }} GH_TOKEN: ${{ secrets.YDB_PLATFORM_BOT_TOKEN_REPO }} CHANGELOG_FILE: CHANGELOG.md SETUP_PY_PATH: setup.py permissions: contents: write id-token: write # IMPORTANT: this permission is mandatory for trusted publishing runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: token: ${{ secrets.YDB_PLATFORM_BOT_TOKEN_REPO }} - name: Set up Python uses: actions/setup-python@v3 with: python-version: '3.8' - name: Install dependencies run: | python -m pip install --upgrade pip pip install build - name: read changelog id: read-changelog run: | CHANGELOG=$(cat $CHANGELOG_FILE | sed -e '/^## .*$/,$d') echo "CHANGELOG<<CHANGELOGEOF_MARKER" >> $GITHUB_ENV echo "$CHANGELOG" >> $GITHUB_ENV echo "CHANGELOGEOF_MARKER" >> $GITHUB_ENV echo "# Changelog" >> $GITHUB_STEP_SUMMARY echo "$CHANGELOG" >> $GITHUB_STEP_SUMMARY - name: Increment version id: increment-version run: | NEW_VERSION=$(python3 ./.github/scripts/increment_version.py --inc-type=$VERSION_CHANGE --beta=$WITH_BETA) echo new version: $NEW_VERSION echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT echo "New version: $NEW_VERSION" >> $GITHUB_STEP_SUMMARY - name: Build package run: python -m build - name: Publish release on github run: | if [[ -z "$CHANGELOG" ]] then echo "CHANGELOG empty" exit 1; fi; TAG="${{ steps.increment-version.outputs.NEW_VERSION }}" # Get previous version from changelog # pre-incremented version not used for consistent changelog with release notes # for example changelog may be rewrited when switch from beta to release # and remove internal beta changes LAST_TAG=$(cat $CHANGELOG_FILE | grep '^## .* ##$' | head -n 2 | tail -n 1 | cut -d ' ' -f 2) git config --global user.email "robot@umbrella"; git config --global user.name "robot"; git commit -am "Release: $TAG"; git tag "$TAG" git push && git push --tags CHANGELOG="$CHANGELOG Full Changelog: [$LAST_TAG...$TAG](https://github.com/ydb-platform/ydb-sqlalchemy/compare/$LAST_TAG...$TAG)" if [ "$WITH_BETA" = true ] then gh release create --prerelease $TAG --title "$TAG" --notes "$CHANGELOG" else gh release create $TAG --title "$TAG" --notes "$CHANGELOG" fi; - name: Publish package uses: pypa/gh-action-pypi-publish@release/v1.8