diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml new file mode 100644 index 0000000..41c7202 --- /dev/null +++ b/.github/workflows/pypi-release.yml @@ -0,0 +1,39 @@ +# This workflow will release to PyPi + +name: Release to PyPi + +on: + release: + types: [published] + workflow_dispatch: + +permissions: + contents: read + +jobs: + pypi-publish: + name: upload release to PyPI + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + + - name: Build and check Python distributions + run: | + python setup.py sdist bdist_wheel + twine check dist/* + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/Makefile b/Makefile index 7049a53..8ec48ff 100644 --- a/Makefile +++ b/Makefile @@ -72,10 +72,10 @@ dist: distclean venv pip-requirements-dev $(PYTHON) setup.py sdist; \ $(PYTHON) setup.py bdist_wheel --universal dist-upload: dist-check-version clean test dist-upload-twine -dist-check-version: PKG_VER=v$(shell sed -n "s/^.*__version__\s*=\s*'\([^']\+\)'.*$$/\1/p" learnosity_sdk/_version.py) +dist-check-version: PKG_VER=$(shell sed -n "s/^.*__version__\s*=\s*'\([^']\+\)'.*$$/\1/p" learnosity_sdk/_version.py) dist-check-version: GIT_TAG=$(shell git describe --tags) dist-check-version: -ifeq ('$(shell echo $(GIT_TAG) | grep -qw "$(PKG_VER)")', '') +ifeq ($(shell echo $(GIT_TAG) | grep -qw "$(PKG_VER)"; echo $$?),1) $(error Version number $(PKG_VER) in learnosity_sdk/_version.py does not match git tag $(GIT_TAG)) endif dist-upload-twine: venv pip-requirements-dev dist # This target doesn't do any safety check!