version: "3" tasks: server: uvicorn --host 0.0.0.0 faster_whisper_server.main:app {{.CLI_ARGS}} test: cmds: - pytest -o log_cli=true -o log_cli_level=DEBUG {{.CLI_ARGS}} sources: - "**/*.py" build: cmds: - docker compose build sources: - Dockerfile.* - faster_whisper_server/*.py pip-compile: cmds: - uv pip compile --override overrides.txt pyproject.toml {{.CLI_ARGS}} > requirements.txt - uv pip compile --override overrides.txt --extra dev pyproject.toml {{.CLI_ARGS}} > requirements-dev.txt - uv pip compile --override overrides.txt --all-extras pyproject.toml {{.CLI_ARGS}} > requirements-all.txt sources: - pyproject.toml pip-sync: cmds: - uv pip sync requirements-all.txt sources: - requirements-all.txt create-multi-arch-builder: docker buildx create --name main --driver=docker-container docker-build: cmds: - docker compose build --builder main {{.CLI_ARGS}} sources: - Dockerfile.* - faster_whisper_server/*.py sync: lsyncd lsyncd.conf cii: cmds: - act --rm --action-offline-mode --secret-file .secrets {{.CLI_ARGS}} # Python's urllib3 takes forever when ipv6 is enabled # https://support.nordvpn.com/hc/en-us/articles/20164669224337-How-to-disable-IPv6-on-Linux disable-ipv6: sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 && sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 enable-ipv6: sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 && sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0 download-test-data: # Downlod audio files for testing into `tests/data` cmds: - huggingface-cli download --repo-type dataset 'google/fleurs' 'data/en_us/audio/dev.tar.gz' - cp $HOME/.cache/huggingface/hub/datasets--google--fleurs/snapshots/199e4ae37915137c555b1765c01477c216287d34/data/en_us/audio/dev.tar.gz . - tar xzf dev.tar.gz - rm dev.tar.gz - mkdir -p tests/data - mv dev/* tests/data - rm -r dev - ls tests/data/*.wav | parallel ffmpeg -y -hide_banner -i {} -ac 1 -ar 16000 -f s16le -acodec pcm_s16le {.}.raw - ls tests/data | grep -v '\.raw$' | xargs -I {} rm -rf tests/data/{}