mirror of
https://github.com/sshuttle/sshuttle.git
synced 2024-11-25 01:13:37 +01:00
Create github workflow
This commit is contained in:
parent
88ce5c0bca
commit
b63e58f494
35
.github/workflows/pythonpackage.yml
vendored
Normal file
35
.github/workflows/pythonpackage.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# 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: Python package
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: [3.5, 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 -r requirements-tests.txt
|
||||||
|
- name: Lint with flake8
|
||||||
|
run: |
|
||||||
|
flake8 sshuttle tests --count --show-source --statistics
|
||||||
|
- name: Test with pytest
|
||||||
|
run: |
|
||||||
|
PYTHONPATH=$PWD pytest
|
@ -224,7 +224,7 @@ class FirewallClient:
|
|||||||
# No env: Talking to `FirewallClient.start`, which has no i18n.
|
# No env: Talking to `FirewallClient.start`, which has no i18n.
|
||||||
e = None
|
e = None
|
||||||
break
|
break
|
||||||
except OSError as e:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
self.argv = argv
|
self.argv = argv
|
||||||
s1.close()
|
s1.close()
|
||||||
@ -304,8 +304,8 @@ class FirewallClient:
|
|||||||
raise Fatal('%r expected STARTED, got %r' % (self.argv, line))
|
raise Fatal('%r expected STARTED, got %r' % (self.argv, line))
|
||||||
|
|
||||||
def sethostip(self, hostname, ip):
|
def sethostip(self, hostname, ip):
|
||||||
assert(not re.search(b'[^-\w\.]', hostname))
|
assert(not re.search(rb'[^-\w\.]', hostname))
|
||||||
assert(not re.search(b'[^0-9.]', ip))
|
assert(not re.search(rb'[^0-9.]', ip))
|
||||||
self.pfile.write(b'HOST %s,%s\n' % (hostname, ip))
|
self.pfile.write(b'HOST %s,%s\n' % (hostname, ip))
|
||||||
self.pfile.flush()
|
self.pfile.flush()
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ def _ipmatch(ipstr):
|
|||||||
# FIXME: IPv4 only
|
# FIXME: IPv4 only
|
||||||
if ipstr == 'default':
|
if ipstr == 'default':
|
||||||
ipstr = '0.0.0.0/0'
|
ipstr = '0.0.0.0/0'
|
||||||
m = re.match('^(\d+(\.\d+(\.\d+(\.\d+)?)?)?)(?:/(\d+))?$', ipstr)
|
m = re.match(r'^(\d+(\.\d+(\.\d+(\.\d+)?)?)?)(?:/(\d+))?$', ipstr)
|
||||||
if m:
|
if m:
|
||||||
g = m.groups()
|
g = m.groups()
|
||||||
ips = g[0]
|
ips = g[0]
|
||||||
|
@ -114,7 +114,6 @@ def parse_hostport(rhostport):
|
|||||||
host = parsed.hostname
|
host = parsed.hostname
|
||||||
port = parsed.port
|
port = parsed.port
|
||||||
|
|
||||||
|
|
||||||
if password is None or len(password) == 0:
|
if password is None or len(password) == 0:
|
||||||
password = None
|
password = None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user