Skip to content

Test dt adapter

Test dt adapter #5642

name: Functional tests
on:
pull_request:
paths:
- ".github/workflows/functional_tests.yml"
- "nxdrive/**/*.py"
- "tests/*.py"
- "tests/functional/*.py"
- "tools/deps/*.txt"
push:
branches: [master]
paths:
- "nxdrive/**/*.py"
- "tests/*.py"
- "tests/functional/*.py"
env:
NXDRIVE_TEST_NUXEO_URL: https://drive-2021.beta.nuxeocloud.com/nuxeo
NXDRIVE_TEST_USERNAME: ${{ secrets.NXDRIVE_TEST_USERNAME }}
NXDRIVE_TEST_PASSWORD: ${{ secrets.NXDRIVE_TEST_PASSWORD }}
jobs:
functional-tests-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.12 # XXX_PYTHON
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
- uses: actions/cache@v4
with:
path: .tox
key: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
- name: Install system dependencies
run: |
sudo apt install xclip
Xvfb :99 -screen 0 1920x1080x24+32 &
- name: Install tox
run: python -m pip install -r tools/deps/requirements-tox.txt
- name: Functional tests
run: tox -e ft
env:
DISPLAY: ":99"
- name: Upload coverage to Codecov
if: ${{ success() }} || ${{ failure() }}
uses: codecov/[email protected]
with:
token: ${{secrets.CODECOV_TOKEN}}
files: ./coverage.xml
flags: functional
env_vars: OS,PYTHON
functional-tests-macos:
runs-on: "macos-latest"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.12 # XXX_PYTHON
- uses: actions/cache@v4
with:
path: ~/Library/Caches/pip
key: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
- uses: actions/cache@v4
with:
path: .tox
key: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
- name: Install tox
run: python -m pip install -r tools/deps/requirements-tox.txt
- name: Functional tests
run: tox -e ft
- name: Upload coverage to Codecov
if: ${{ success() }} || ${{ failure() }}
uses: codecov/[email protected]
with:
token: ${{secrets.CODECOV_TOKEN}}
files: ./coverage.xml
flags: functional
env_vars: OS,PYTHON
functional-tests-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.12 # XXX_PYTHON
- uses: actions/cache@v4
with:
path: ~\AppData\Local\pip\Cache
key: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
# Cannot be used for now: OSError: [WinError 193] %1 is not a valid Win32 application
# - uses: actions/cache@v4
# with:
# path: .tox
# key: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
# restore-keys: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements.txt', 'tools/deps/requirements-test.txt', 'tools/deps/requirements-tox.txt') }}
- name: Install tox
run: python -m pip install -r tools/deps/requirements-tox.txt
- name: Functional tests
run: tox -e ft
- name: Upload coverage to Codecov
if: ${{ success() }} || ${{ failure() }}
uses: codecov/[email protected]
with:
token: ${{secrets.CODECOV_TOKEN}}
files: ./coverage.xml
flags: functional
env_vars: OS,PYTHON
cleanup:
runs-on: ubuntu-latest
if: always()
needs:
- functional-tests-linux
- functional-tests-macos
- functional-tests-windows
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.12 # XXX_PYTHON
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements-clean.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-pip-${{ hashFiles('tools/deps/requirements-clean.txt', 'tools/deps/requirements-tox.txt') }}
- uses: actions/cache@v4
with:
path: .tox
key: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements-clean.txt', 'tools/deps/requirements-tox.txt') }}
restore-keys: ${{ runner.os }}-tox-${{ hashFiles('tools/deps/requirements-clean.txt', 'tools/deps/requirements-tox.txt') }}
- name: Install tox
run: python -m pip install -r tools/deps/requirements-tox.txt
- name: Clean-up tests data
run: tox -e clean