name: CI on: push: branches: [ main ] pull_request: jobs: lint-test: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y tor python -m pip install --upgrade pip pip install flake8 pip install -e ".[test]" pip install git+https://github.com/onionshare/onionshare.git#subdirectory=cli - name: Lint run: flake8 voxvera tests --exclude=voxvera/vendor --ignore=E501,W503,W293,E402,E306,E704,E261,F841,E302,F401,E401,F541 - name: Test run: pytest tests/ -v - name: Platform smoke run: bash scripts/platform-smoke.sh linux-cli platform-contract: runs-on: ${{ matrix.os }} timeout-minutes: 15 strategy: fail-fast: false matrix: include: - os: macos-latest smoke_target: macos-cli - os: windows-latest smoke_target: windows-cli steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies shell: bash run: | python -m pip install --upgrade pip pip install -e ".[test]" - name: Verify smoke target listing shell: bash run: bash scripts/platform-smoke.sh list - name: Validate platform-status JSON shell: bash run: python -m voxvera.cli platform-status --json - name: Validate doctor JSON shell: bash run: python -m voxvera.cli doctor --json - name: Validate autostart JSON shell: bash run: python -m voxvera.cli autostart status --json