--- name: Publish Python distributions to PyPI and TestPyPI on: push: branches: [main] pull_request: branches: [main] jobs: validate: name: Run static analysis on the code runs-on: ubuntu-22.04 steps: - name: Lint with flake8 run: | pip install flake8 # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics build-and-publish: name: Build and publish Python distribution runs-on: ubuntu-22.04 steps: - uses: actions/checkout@main - name: Initialize Python 3.11 uses: actions/setup-python@v1 with: python-version: 3.11 - name: Install dependencies run: | python -m pip install --upgrade pip build - name: Build binary wheel and a source tarball run: python -m build - name: Publish distribution to PyPI uses: pypa/gh-action-pypi-publish@v1.8.5 with: password: ${{ secrets.PIPY_PASSWORD }}