From a267459f652b7ed89dd67d095d7085b3ca2b2d3e Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Fri, 10 Sep 2021 18:46:29 +0300 Subject: [PATCH] CI(GHActions): Run tests on w32 --- .github/workflows/run-tests.yaml | 32 +++++++++++++++++++++++++++----- tox.ini | 23 ++++++----------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 0f928d2..22d05e6 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -7,14 +7,31 @@ jobs: strategy: matrix: + os: [ubuntu-latest, windows-latest] python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9] + include: + - os: ubuntu-latest + os-name: Linux + pip-cache-path: ~/.cache/pip + - os: windows-latest + os-name: w32 + pip-cache-path: ~\AppData\Local\pip\Cache - name: Python ${{ matrix.python-version }} - runs-on: ubuntu-latest + name: Python ${{ matrix.python-version }} @ ${{ matrix.os-name }} + runs-on: ${{ matrix.os }} steps: - uses: ankane/setup-postgres@v1 + - name: Setup Postgres user + run: | + sudo -u postgres psql --command="ALTER USER runner CREATEDB PASSWORD 'test'" + if: ${{ runner.os == 'Linux' }} + - name: Setup Postgres user + run: | + psql --command="CREATE USER runner CREATEDB PASSWORD 'test'" + if: ${{ runner.os == 'Windows' }} + - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: @@ -22,8 +39,7 @@ jobs: - name: Cache pip uses: actions/cache@v2 with: - # This path is specific to Linux/Unix - path: ~/.cache/pip + path: ${{ matrix.pip-cache-path }} key: ${{ runner.os }}-pip - name: Install dependencies run: | @@ -37,10 +53,16 @@ jobs: pyver = '%d%d' % tuple(sys.version_info[:2]) toxenv = 'py%s' % pyver toxenv += ',py%s-sqlite' % pyver + if os.name == 'nt': + toxenv += '-w32' toxenv += ',py%s-postgres' % pyver - toxenv += ',py%s-flake8' % pyver + if os.name == 'posix': + toxenv += ',py%s-flake8' % pyver + elif os.name == 'nt': + toxenv += '-w32' with open(os.environ['GITHUB_ENV'], 'a') as f: f.write('TOXENV=' + toxenv + '\n') + f.write('PGPASSWORD=test\n') shell: python - name: Run tox run: | diff --git a/tox.ini b/tox.ini index fa79032..6ba46d0 100644 --- a/tox.ini +++ b/tox.ini @@ -23,14 +23,13 @@ deps = passenv = PGPASSWORD setenv = VIRTUALENV_PIP = 19.1.1 -platform = linux +platform = linux|win32 # Don't fail or warn on uninstalled commands whitelist_externals = createdb dropdb [testenv:{py27,py34,py35,py36,py37,py38,py39}] -platform = linux|win32 commands = {[testenv]commands} {envpython} -m pytest @@ -49,30 +48,20 @@ commands = platform = win32 commands = {[testenv]commands} - -rm.py -f C:/projects/sqlconvert/test.sqdb - pytest -D sqlite:/C:/projects/sqlconvert/test.sqdb?debug=1 - rm.py -f C:/projects/sqlconvert/test.sqdb + -rm.py -f {env:TEMP}/test.sqdb + pytest -D sqlite:/{env:TEMP}/test.sqdb?debug=1 + rm.py -f {env:TEMP}/test.sqdb -[testenv:{py27,py34,py35,py36,py37,py38,py39}-postgres] +[testenv:{py27,py34,py35,py36,py37,py38,py39}-postgres{,-w32}] commands = {[testenv]commands} -dropdb --username=runner test createdb --username=runner test - {envpython} -m pytest -D postgres://runner@localhost/test + {envpython} -m pytest -D postgres://runner:test@localhost/test dropdb --username=runner test -[testenv:{py27,py34,py35,py36,py37,py38,py39}-postgres-w32] -platform = win32 -commands = - {[testenv]commands} - -dropdb --username=postgres --no-password test - createdb --username=postgres --no-password test - pytest -D "postgres://postgres:Password12!@localhost/test" - dropdb --username=postgres --no-password test - # flake8 [testenv:{py27,py34,py35,py36,py37,py38,py39}-flake8] -platform = linux|win32 deps = flake8 commands = -- 2.39.2