diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..0e47e9a0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,49 @@ +name: Test + +on: + push: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + test: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.6, 3.7, 3.8] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + sudo apt update + sudo apt install espeak git + - name: Upgrade pip + # so we can take advantage of pyproject.toml build-dependency support + run: python3 -m pip install --upgrade pip + - name: Install TTS + run: | + python3 -m pip install . + python3 setup.py egg_info + - name: Lint check + run: | + python3 -m pip install --quiet --upgrade cardboardlint pylint + cardboardlinter --refspec ${GITHUB_BASE_REF} -n auto + - name: Unit tests + run: nosetests tests --nocapture + - name: Test scripts + run: | + ./tests/test_server_package.sh + ./tests/test_glow-tts_train.sh + ./tests/test_server_package.sh + ./tests/test_tacotron_train.sh + ./tests/test_vocoder_gan_train.sh + ./tests/test_vocoder_wavegrad_train.sh + ./tests/test_vocoder_wavernn_train.sh + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 28500a81..00000000 --- a/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -language: python - -git: - quiet: true - -before_install: - - sudo apt-get update - - sudo apt-get -y install espeak - - python -m pip install --upgrade pip - - pip install six==1.12.0 - - pip install --upgrade cython - -matrix: - include: - - name: "Lint check" - python: "3.6" - install: pip install --quiet --upgrade cardboardlint pylint - env: TEST_SUITE="lint" - - name: "Unit tests" - python: "3.6" - install: - - python setup.py egg_info - - pip install -e . - env: TEST_SUITE="unittest" - - name: "Unit tests" - python: "3.6" - install: - - python setup.py egg_info - - pip install -e . - env: TEST_SUITE="testscripts" - -script: ./.travis/script diff --git a/.travis/script b/.travis/script deleted file mode 100755 index 0860f9cf..00000000 --- a/.travis/script +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -set -ex - -git remote set-branches --add origin $TRAVIS_BRANCH -git fetch - -if [[ ( "$TRAVIS_PULL_REQUEST" != "false" ) && ( "$TEST_SUITE" == "lint" ) ]]; then - # Run cardboardlinter, in case of pull requests - cardboardlinter --refspec origin/$TRAVIS_BRANCH -n auto -fi - -if [[ "$TEST_SUITE" == "unittest" ]]; then - nosetests tests --nocapture - ./tests/test_server_package.sh -fi - -if [[ "$TEST_SUITE" == "testscripts" ]]; then - # test model training scripts - ./tests/test_tts_train.sh - ./tests/test_vocoder_gan_train.sh - ./tests/test_vocoder_wavernn_train.sh -fi diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..997b713f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[build-system] +requires = ["setuptools", "wheel", "Cython", "numpy>=1.16.0,<1.20"] diff --git a/requirements.txt b/requirements.txt index 31b49916..e9af491f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ torch>=1.5 tensorflow==2.3.1 -numpy>=1.16.0 +numpy>=1.16.0; python_version >= "3.7" +numpy>=1.16.0,<1.20; python_version < "3.7" scipy>=0.19.0 numba==0.48 librosa==0.7.2 @@ -18,8 +19,8 @@ pysbd pyworld soundfile nose==1.3.7 -cardboardlint==1.3.0 -pylint==2.5.3 +cardboardlint +pylint gdown umap-learn cython diff --git a/tests/test_server_package.sh b/tests/test_server_package.sh index 7e75415a..0b3395a7 100755 --- a/tests/test_server_package.sh +++ b/tests/test_server_package.sh @@ -7,24 +7,26 @@ if [[ ! -f tests/outputs/checkpoint_10.pth.tar ]]; then fi rm -f dist/*.whl -python setup.py --quiet bdist_wheel --checkpoint tests/outputs/checkpoint_10.pth.tar --model_config tests/outputs/dummy_model_config.json +python3 setup.py --quiet bdist_wheel --checkpoint tests/outputs/checkpoint_10.pth.tar --model_config tests/outputs/dummy_model_config.json -python -m venv /tmp/venv +python3 -m venv /tmp/venv source /tmp/venv/bin/activate -pip install --quiet --upgrade pip setuptools wheel -pip install --quiet dist/TTS*.whl +python3 -m pip install --quiet --upgrade pip setuptools wheel cython +# wait to install numpy until we have wheel support +python3 -m pip install numpy +python3 -m pip install --quiet dist/TTS*.whl # this is related to https://github.com/librosa/librosa/issues/1160 -pip install numba==0.48 +python3 -m pip install numba==0.48 -python -m TTS.server.server & +python3 -m TTS.server.server & SERVER_PID=$! echo 'Waiting for server...' sleep 30 curl -o /tmp/audio.wav "http://localhost:5002/api/tts?text=synthesis%20schmynthesis" -python -c 'import sys; import wave; print(wave.open(sys.argv[1]).getnframes())' /tmp/audio.wav +python3 -c 'import sys; import wave; print(wave.open(sys.argv[1]).getnframes())' /tmp/audio.wav kill $SERVER_PID