name: Publish package # Publish to PyPI when new release on GitHub, if tests pass on: release: types: [created] workflow_dispatch: # Manual trigger in case the release needs to be rerun jobs: # tests: # runs-on: ubuntu-latest # strategy: # matrix: # python-version: [3.6, 3.7, 3.8] # steps: # - uses: actions/checkout@v2 # - name: Set up Python ${{ matrix.python-version }} # uses: actions/setup-python@v2 # with: # python-version: ${{ matrix.python-version }} # - name: Install dependencies # run: | # python -m pip install --upgrade pip # pip install flake8 pytest # if [ -f requirements.txt ]; then pip install -r requirements.txt; fi # - name: Lint with flake8 # run: | # # stop the build if there are Python syntax errors or undefined names # flake8 . --count --exit-zero --select=E9,F63,F7,F82 --show-source --statistics # # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide # flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics # - name: Test with pytest # run: | # python setup.py pytest publish: # needs: [ tests ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.8' - name: Install dependencies run: | python -m pip install --upgrade pip pip install setuptools wheel twine python setup.py sdist bdist_wheel - name: Build and publish to PyPI env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | python setup.py sdist bdist_wheel twine upload dist/*