diff --git a/.github/workflows/test_server.yml b/.github/workflows/test_server.yml new file mode 100644 index 00000000..2029a77c --- /dev/null +++ b/.github/workflows/test_server.yml @@ -0,0 +1,68 @@ +name: Unittests + +on: + pull_request: + paths-ignore: + - 'www/**' + push: + paths-ignore: + - 'www/**' + +jobs: + pytest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.x + uses: actions/setup-python@v4 + with: + python-version: 3.11 + - uses: Gr1N/setup-poetry@v8 + - name: Cache Python requirements + uses: actions/cache@v2 + id: cache-pip + with: + path: ~/.cache/pypoetry/virtualenvs + key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }} + restore-keys: | + - ${{ runner.os }}-poetry- + - name: Install tests dependencies + run: | + sudo apt-get update + sudo apt-get install -y portaudio19-dev build-essential + - name: Install requirements + run: | + cd server + poetry install + - name: Tests + run: | + cd server + poetry run python -m pytest -v tests + + pep8: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.x + uses: actions/setup-python@v4 + with: + python-version: 3.11 + - name: Validate formatting + run: | + pip install black + cd server + black --check reflector tests + + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + context: server