diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml new file mode 100644 index 0000000..ecb68f1 --- /dev/null +++ b/.github/workflows/check-build.yml @@ -0,0 +1,27 @@ +name: Check Distribution Build + +on: push + +jobs: + check-build: + name: Twine Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + with: + fetch-depth: 0 + + - uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install Build Tools + run: pip install build twine + + - name: Build a binary wheel + run: | + python -m build . + + - name: Check Distribution + run: | + twine check dist/* diff --git a/.github/workflows/publish-to-pypi.yaml b/.github/workflows/publish-to-pypi.yaml index c01d638..6376328 100644 --- a/.github/workflows/publish-to-pypi.yaml +++ b/.github/workflows/publish-to-pypi.yaml @@ -1,42 +1,30 @@ -name: Deploy to PyPI +name: Publish Python distributions to PyPI -on: push +on: + release: + types: [published] jobs: build-n-publish: - name: Deploy - runs-on: ubuntu-22.04 + name: Make Release on PyPI and Github + runs-on: ubuntu-latest steps: - uses: actions/checkout@master - # https://github.com/ansible/pylibssh/blob/1e7b17f/.github/workflows/build-test-n-publish.yml#L146-L151 - - name: Get history and tags for SCM versioning to work - run: | - git fetch --prune --unshallow - git fetch --depth=1 origin +refs/tags/*:refs/tags/* - git describe --tags - git describe --tags $(git rev-list --tags --max-count=1) - - name: Set up Python 3.10 - uses: actions/setup-python@v4 with: - python-version: "3.10" - - name: Install pep517 - run: | - python -m pip install pep517 --user - python -m pip install setuptools_scm - python setup.py --version - - name: Create setuptools_scm env variable - if: startsWith(github.ref, 'refs/tags/') != true - shell: bash + fetch-depth: 0 + + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install Build Tools + run: pip install build + + - name: Build a binary wheel run: | - wget https://gist.github.com/plaplant/0902f09e59166bac742bbd554f3cd2f9/raw/make_dev_version.sh -O ../make_dev_version.sh - version=$(bash ../make_dev_version.sh) - echo "SETUPTOOLS_SCM_PRETEND_VERSION=$version" >> $GITHUB_ENV - - name: Build a binary wheel and a source tarball - run: python -m pep517.build --binary --source --out-dir dist . - # deploy to actual PyPI only when a tag is pushed (which should happen only - # automatically on master) - - name: Publish distribution 📦 to PyPI - if: startsWith(github.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@release/v1 + python -m build . + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@master with: password: ${{ secrets.pypi_password }}