Fix #1372
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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] | |
coqui: [coqui_yes, coqui_no] # Coqui pools different versions of transformers | |
exclude: | |
- os: macos-latest | |
python-version: 3.10.15 | |
- os: windows-latest | |
python-version: 3.10.15 | |
- coqui: coqui_yes | |
python-version: 3.10.15 | |
- coqui: coqui_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.coqui == 'coqui_yes' | |
run: | | |
pip install .[coqui] | |
- name: Install application without Coqui | |
if: matrix.coqui != 'coqui_yes' | |
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 |