Skip to content

Filled in more of the top level README #17

Filled in more of the top level README

Filled in more of the top level README #17

name: Python vCon server unit test
on:
push:
# all
pull_request:
# all PRs for now
#branches: [ $default-branch ]
jobs:
# Label of the runner job
server-utest-python-version:
# You must use a Linux environment when using service containers or container jobs
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10"]
# Service containers to run with `runner-job`
services:
# Label used to access the service container
redis:
# Docker Hub image. Need stack for JSON path operations support
image: redis/redis-stack-server
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps port 6379 on service container to the host
- 6379:6379
steps:
- name: checkout ${{ github.ref }}
# Downloads a copy of the code in your repository before running CI tests
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }} os ${{ runner.os }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
# This does not seem to actually load the pip dev packages. However
# leaving this in so that it does not pull in **/requirements.txt
# and its supposed to be used in the hash for the cache to determine
# if a re-build is needed.
cache-dependency-path: |
vcon/docker_dev/pip_dev_package_list.txt
vcon/docker_dev/pip_package_list.txt
vcon/docker_dev/pip_server_requirements.txt
# Performs a clean installation of all dependencies in the `package.json` file
# For more information, see https://docs.npmjs.com/cli/ci.html
- name: Install redis-cli
run: |
sudo apt-get install redis-tools
- name: Test connection and operations with Redis
# Runs a script that creates a Redis client, populates
# the client with data, and retrieves data
run: |
# make sure we can connect and get response from redis server
export PING_OUT=`redis-cli -n 0 -h ${REDIS_HOST} -p ${REDIS_PORT} PING`
if [ "${PING_OUT}" == "PONG" ]; then echo "redis connection succeeded"; else echo "cli return: ${PING_OUT}"; exit 1; fi
# confirm only one user of this server
if [ "`redis-cli -n 0 SADD PY_V ${{ matrix.python-version }}`" -eq 1 ]; then echo "no other python ${{matrix.python-version}} user of redis"; else echo "existing python ${{ matrix.python-version }} user of redis"; exit 2; fi
sleep 10
redis-cli -n 0 SMEMBERS PY_V
export PY_V_COUNT=`redis-cli -n 0 SCARD PY_V`
if [ "${PY_V_COUNT}" -eq 1 ]; then echo "one user of redis"; else echo "${PY_V_COUNT} users of redis"; exit 2; fi
# Verify that we have support of JSON path operations in redis server
redis-cli -n 0 JSON.SET v '$' '{"a": "aaa"}'
redis-cli -n 0 JSON.GET v '$.a'
# Environment variables
env:
# The hostname used to communicate with the Redis service container
REDIS_HOST: localhost
# The default Redis port
REDIS_PORT: 6379
- name: Install dependencies
run: |
pwd
ls -l vcon/docker_dev
# Pull out comments and python3 specific packages as the platform already has that
sudo apt-get update
apt-cache madison ffmpeg
apt-cache depends ffmpeg
apt-cache depends ffmpeg=7:4.4.1-3ubuntu5
apt-cache depends ffmpeg=7:4.4.2-0ubuntu0.22.04.1
apt-cache depends ffmpeg=7:4.4.2-0ubuntu0.22.04.1
apt-cache madison intel-media-va-driver
apt-cache depends intel-media-va-driver
echo "Installing apt packages: " $(grep -vE "^\s*#" vcon/docker_dev/apt_package_list.txt | grep -v python3.8 | tr "\n" " ")
sudo apt-get install -y --fix-missing $(grep -vE "^\s*#" vcon/docker_dev/apt_package_list.txt | grep -v python3.8 | tr "\n" " ")
# get latest pip install package list
python -m pip install --upgrade pip
#python -m pip install flake8 pytest
#if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install -r vcon/docker_dev/pip_dev_package_list.txt
pip install -r vcon/docker_dev/pip_package_list.txt
pip install -r vcon/docker_dev/pip_server_requirements.txt
pip freeze | grep stable
pip freeze | grep whisper
python3 -c "import stable_whisper;print(stable_whisper.__version__)"
- name: Test py_vcon_server package with pytest
# Environment variables
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
DEEPGRAM_KEY: ${{ secrets.DEEPGRAM_KEY }}
run: |
# Run all Vcon server package unit tests
(cd py_vcon_server; pytest -v -rP tests)
- name: fix pip cache issue by creating dir
run: |
mkdir -p -- "$(pip cache dir)"
echo "$(pip cache dir)"