Skip to content

Workflow file for this run

name: Build and publish the release
on:
release:
types: [prereleased, released]
jobs:
test:
name: Run checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- uses: Gr1N/setup-poetry@v8
- run: poetry install
- run: poetry run poe tests_unit
- run: poetry run poe checks_codestyle
- run: poetry run poe checks_typing
- run: poetry run poe checks_license
build:
needs: [test]
name: Build the release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- uses: Gr1N/setup-poetry@v8
- name: Get git release tag
run: echo "git-release-tag=yapapi $(git describe --tags)" >> $GITHUB_OUTPUT
id: git_describe
- name: Get package version
run: echo "poetry-version=$(poetry version)" >> $GITHUB_OUTPUT
id: poetry_version
- name: Fail on version mismatch
run: exit 1
if:
${{ steps.git_describe.outputs.git-release-tag !=
steps.poetry_version.outputs.poetry-version }}
- name: Build the release
run: poetry build
- name: Store the built package
uses: actions/upload-artifact@v2
with:
name: dist
path: dist
test_publish:
needs: [build]
name: Publish the release to test.pypi
runs-on: ubuntu-latest
if: ${{ github.event.action == 'prereleased' }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- uses: Gr1N/setup-poetry@v8
- name: Retrieve the built package
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Publish to pypi
run: |
poetry config repositories.testpypi https://test.pypi.org/legacy/
poetry publish -r testpypi -u __token__ -p ${{ secrets.TESTPYPI_TOKEN }}
publish:
needs: [build]
name: Publish the release
runs-on: ubuntu-latest
if: ${{ github.event.action == 'released' }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- uses: Gr1N/setup-poetry@v8
- name: Retrieve the built package
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Publish to pypi
run: |
poetry publish -u __token__ -p ${{ secrets.PYPI_TOKEN }}