# To run the tests, CircleCI needs these environment variables: # QT_EMAIL - email address for a Qt account # QT_PASSWORD - password for a Qt account # (Unfortunately you can't install Qt without logging in.) version: 2 workflows: version: 2 test: jobs: - test-cli - test-gui jobs: test-cli: docker: - image: circleci/python:3.8-buster working_directory: ~/repo steps: - checkout - run: name: Install dependencies command: | sudo apt-get update sudo apt-get -y install tor obfs4proxy pip install poetry cd ~/repo/cli poetry install - run: name: Run tests command: | cd ~/repo/cli poetry run pytest -v ./tests test-gui: docker: - image: circleci/python:3.8-buster working_directory: ~/repo steps: - checkout - run: name: Install dependencies command: | sudo apt-get update sudo apt-get install -y tor obfs4proxy gcc python3-dev python3-pyside2.qtcore python3-pyside2.qtwidgets python3-pyside2.qtgui sudo apt-get install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 cd ~/repo/cli poetry install poetry build cp dist/onionshare_cli-*.whl ~/repo/desktop cd ~/repo/desktop pip install briefcase pytest pytest-briefcase pytest-faulthandler pytest-qt pytest-xvfb pip install $(python -c 'import toml; print(" ".join(toml.loads(open("pyproject.toml").read())["tool"]["briefcase"]["app"]["onionshare"]["requires"]))') - run: name: Run tests command: | cd ~/repo/desktop ./tests/run.sh