Skip to content

Handle the case when there is no voice in the video and text to trans… #1641

Handle the case when there is no voice in the video and text to trans…

Handle the case when there is no voice in the video and text to trans… #1641

Workflow file for this run

name: CI
on:
push:
branches:
- "*"
tags:
- v*
pull_request:
branches:
- "*"
jobs:
check-code-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dev tools
run: |
pip install --no-cache -e .[dev]
- name: Check code format with Black
run: |
black --check open_dubbing/ tests/
- name: Check code style with Flake8
if: ${{ always() }}
run: |
flake8 open_dubbing/ tests/
- name: Check code with isort
if: ${{ always() }}
run: |
isort --check-only open_dubbing/ tests/
run-tests:
environment: CI/CD
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.10.15, 3.11, 3.12]
extra_lib: [none, coqui_yes, openai_yes] # Coqui pools different versions of transformers
exclude:
- os: macos-latest
python-version: 3.10.15
- os: windows-latest
python-version: 3.10.15
- extra_lib: coqui_yes
python-version: 3.10.15
- extra_lib: coqui_yes
python-version: 3.11
- extra_lib: openai_yes
python-version: 3.10.15
- extra_lib: openai_yes
python-version: 3.11
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies on Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt update
sudo apt install -y ffmpeg espeak-ng
sudo apt-get clean
- name: Install dependencies on macOS
if: matrix.os == 'macos-latest'
run: |
sysctl -n machdep.cpu.brand_string
brew update
brew install ffmpeg espeak-ng
- name: Install dependencies on Windows
if: matrix.os == 'windows-latest'
run: |
choco install ffmpeg -y
- name: Install application with Coqui
if: matrix.extra_lib == 'coqui_yes'
run: |
pip install .[coqui]
- name: Install application with OpenAI
if: matrix.extra_lib == 'openai_yes'
run: |
pip install .[openai]
- name: Install application without any extra libs
if: matrix.extra_lib == 'none'
run: |
pip install .
- name: Install dev packages
run: |
pip install pytest coverage
pip cache purge
- name: Run tests with coverage
run: |
coverage run --source=open_dubbing -m pytest tests/
coverage report
coverage xml
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: coverage-report
path: coverage.xml
- name: Report test coverage
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.xml
flags: unittests
name: codecov-coverage
fail_ci_if_error: false
- name: Run end-to-end test
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
make run-e2e-tests
build-and-push-package:
environment: CI/CD
runs-on: ubuntu-latest
needs: [check-code-format, run-tests]
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Install dependencies
run: |
pip install wheel twine setuptools
- name: Build package
run: |
python3 setup.py sdist bdist_wheel
- name: Push package on PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
env:
PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
run: |
make publish-release