diff --git a/.github/workflows/test_and_release.yml b/.github/workflows/test_and_release.yml new file mode 100644 index 0000000..6750919 --- /dev/null +++ b/.github/workflows/test_and_release.yml @@ -0,0 +1,62 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: test_and_release + +on: [ push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.5', '3.6', '3.7', '3.8', '3.x'] + + 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: | + sudo apt install -y libgirepository1.0-dev + python -m pip install --upgrade pip + python -m 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 --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: Verify successful compilation + run: | + python setup.py bdist + python setup.py build + + # https://github.com/actions/starter-workflows/blob/main/ci/python-publish.yml + release: + + runs-on: ubuntu-latest + needs: build + if: startsWith(github.ref, 'refs/tags/v') + + steps: + - uses: actions/checkout@v2 + - 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: Deploy to PyPI + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + python setup.py sdist bdist_wheel + twine upload dist/* diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e8a9cae..0000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -notifications: - email: - false - -sudo: false - -language: python - -python: - - "3.4" - - "3.5" - - "3.6" - - "3.7" - - "3.8-dev" - -script: - - "python setup.py bdist" # detect syntax errors by byte-compiling - - "python setup.py build" - -deploy: - provider: pypi - user: moxfyre - password: - secure: IUe0vzjHCYbnWkO4ErYFUoo7SJ/iCNdTboVQ03lSjOhnq2ya+T5kEzXmt8u88yBhA0Ba3EkcM4h4Tfnt5VTVmyyID3eoGgxyMAyBzkgfnT+vzmWSbabsEOR+ERDGfIsEbsr0wHwGdP8GJzYAG9g5D5ikMG5yStE7y2Bj0ckRf3A3MsW+/CGOQL5WbhT63vC2YNu/XuF0lp8XhDHvHPspZbW7/SxwqwbPu8FBCzjDep2Gu+owWf04RIke9wPK5pWCiV74WTEEB+FalZTsvorVWu2pku8d+VMxlmhA5PJQhwIiZbUxkA89Hb/usN/u42PFkcFXEeNutXmRUDaJlH1Wr9JZVz8tIAP1hWQ3B/6yAHIvP+nZIYr5zkXlcBSYKYe5gt/6twRByFF2t6dbJJH0mqrsGdCdxgSkQHs34UUfoxRrfYwMhL9/hBMVicAMO7yqcjo6MEK7P0Nra4USUjXo70q3qEYxu862r/FJ8UsG/nf8WrsAVnwitKThH5eY1hJIpbPTAg/jgpRTVmRYJ8nTgHahxvJkyHGwgD3MY0/9ocfjGMqI2Pup5nlfhnjNVBKEppoETi6TE/gUcd75h1VFxKny/Wn7HQMVwHlk+tsOFKD7mNrDY0kmc7fHSYRVwx88L458h4IoIATkKgwTa5f/B6opLEAMI6Omh+aVFblqwo0= - on: - tags: true - repo: dlenski/vpn-slice diff --git a/README.md b/README.md index aaea6b9..5db9be3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ vpn-slice ========= [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -[![Build Status](https://api.travis-ci.org/dlenski/vpn-slice.png)](https://travis-ci.org/dlenski/vpn-slice) +[![Build Status](https://github.com/dlenski/vpn-slice/workflows/test_and_release/badge.svg)](https://github.com/dlenski/vpn-slice/actions?query=workflow%3Atest_and_release) [![PyPI](https://img.shields.io/pypi/v/vpn-slice.svg)](https://pypi.python.org/pypi/vpn-slice) [![Homebrew](https://img.shields.io/homebrew/v/vpn-slice.svg)](https://formulae.brew.sh/formula/vpn-slice)