version: 2.1 orbs: win: circleci/windows@4.0.0 workflows: version: 2 test_and_build: jobs: - test-cli - test-gui - build-win64: requires: - test-cli # - test-gui - build-win32: requires: - test-cli # - test-gui jobs: test-cli: docker: - image: cimg/python:3.9 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 poetry run onionshare-cli --local-only ./tests --auto-stop-timer 2 poetry run onionshare-cli --local-only --receive --auto-stop-timer 2 poetry run onionshare-cli --local-only --website ../docs --auto-stop-timer 2 poetry run onionshare-cli --local-only --chat --auto-stop-timer 2 test-gui: docker: - image: cimg/python:3.9 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/desktop poetry install - run: name: Run tests command: | cd ~/repo/desktop QT_DEBUG_PLUGINS=1 xvfb-run poetry run pytest -v ./tests/test_gui_*.py build-win64: executor: name: win/default shell: powershell.exe steps: - checkout - run: name: Install chocolately dependencies command: | choco install python --version=3.9.12 choco install 7zip choco install go - run: name: Install poetry command: (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - - run: name: Install poetry dependencies command: | cd ~\project\desktop poetry install - run: name: Get tor command: | cd ~\project\desktop poetry run python .\scripts\get-tor-windows.py - run: name: Build meek command: | cd ~\project\desktop python .\scripts\build-meek-client.py - run: name: Build command: | cd ~\project\desktop poetry run python .\package\build-windows.py --ci-build - run: name: Compress command: Compress-Archive -LiteralPath ~\project\desktop\build\exe.win-amd64-3.9 -DestinationPath ~\onionshare-win64.zip - store_artifacts: path: ~\onionshare-win64.zip build-win32: executor: name: win/default shell: powershell.exe steps: - checkout - run: name: Install chocolately dependencies command: | choco install python3 --params "/InstallDir32:C:\Python39-32bit" --version=3.9.12 choco install 7zip - run: name: Install golang (32-bit) command: | Invoke-WebRequest -Uri https://go.dev/dl/go1.18.windows-386.msi -OutFile ~\Downloads\go1.18.windows-386.msi msiexec.exe /i "~\Downloads\go1.18.windows-386.msi" /qn - run: name: Install poetry (32-bit) command: C:\Python39-32bit\Scripts\pip install poetry - run: name: Install poetry dependencies command: | cd ~\project\desktop C:\Python39-32bit\Scripts\poetry install - run: name: Get tor command: | cd ~\project\desktop C:\Python39-32bit\Scripts\poetry run python .\scripts\get-tor-windows.py - run: name: Build meek command: | cd ~\project\desktop C:\Python39-32bit\python .\scripts\build-meek-client.py - run: name: Build command: | cd ~\project\desktop C:\Python39-32bit\Scripts\poetry run python .\package\build-windows.py --ci-build - run: name: Compress command: Compress-Archive -LiteralPath ~\project\desktop\build\exe.win32-3.9 -DestinationPath ~\onionshare-win32.zip - store_artifacts: path: ~\onionshare-win32.zip