From 80872e345f8c8f8d5d472059919ba5f00aab4e96 Mon Sep 17 00:00:00 2001 From: Enno Hermann Date: Fri, 22 Nov 2024 23:44:40 +0100 Subject: [PATCH] ci: merge integration tests back into unit tests --- .github/workflows/integration-tests.yml | 82 ------------------------- .github/workflows/tests.yml | 51 ++++++++++++++- 2 files changed, 48 insertions(+), 85 deletions(-) delete mode 100644 .github/workflows/integration-tests.yml diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml deleted file mode 100644 index 4dc8c76c1a..0000000000 --- a/.github/workflows/integration-tests.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: integration - -on: - push: - branches: - - main - pull_request: - types: [opened, synchronize, reopened] - workflow_dispatch: - inputs: - trainer_branch: - description: "Branch of Trainer to test" - required: false - default: "main" - coqpit_branch: - description: "Branch of Coqpit to test" - required: false - default: "main" -jobs: - test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python-version: ["3.9", "3.12"] - subset: ["test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"] - steps: - - uses: actions/checkout@v4 - - name: Setup uv - uses: ./.github/actions/setup-uv - - name: Set up Python ${{ matrix.python-version }} - run: uv python install ${{ matrix.python-version }} - - name: Install Espeak - if: contains(fromJSON('["test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset) - run: | - sudo apt-get update - sudo apt-get install espeak espeak-ng - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends git make gcc - make system-deps - - name: Install custom Trainer and/or Coqpit if requested - run: | - if [[ -n "${{ github.event.inputs.trainer_branch }}" ]]; then - uv add git+https://github.com/idiap/coqui-ai-Trainer --branch ${{ github.event.inputs.trainer_branch }} - fi - if [[ -n "${{ github.event.inputs.coqpit_branch }}" ]]; then - uv add git+https://github.com/idiap/coqui-ai-coqpit --branch ${{ github.event.inputs.coqpit_branch }} - fi - - name: Integration tests - run: | - resolution=highest - if [ "${{ matrix.python-version }}" == "3.9" ]; then - resolution=lowest-direct - fi - uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }} - - name: Upload coverage data - uses: actions/upload-artifact@v4 - with: - include-hidden-files: true - name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }} - path: .coverage.* - if-no-files-found: ignore - coverage: - if: always() - needs: test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup uv - uses: ./.github/actions/setup-uv - - uses: actions/download-artifact@v4 - with: - pattern: coverage-data-* - merge-multiple: true - - name: Combine coverage - run: | - uv python install - uvx coverage combine - uvx coverage html --skip-covered --skip-empty - uvx coverage report --format=markdown >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 576de150fd..8d639d5dee 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,4 +1,4 @@ -name: unit +name: test on: push: @@ -17,7 +17,7 @@ on: required: false default: "main" jobs: - test: + unit: runs-on: ubuntu-latest strategy: fail-fast: false @@ -62,9 +62,54 @@ jobs: name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }} path: .coverage.* if-no-files-found: ignore + integration: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.12"] + subset: ["test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"] + steps: + - uses: actions/checkout@v4 + - name: Setup uv + uses: ./.github/actions/setup-uv + - name: Set up Python ${{ matrix.python-version }} + run: uv python install ${{ matrix.python-version }} + - name: Install Espeak + if: contains(fromJSON('["test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset) + run: | + sudo apt-get update + sudo apt-get install espeak espeak-ng + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends git make gcc + make system-deps + - name: Install custom Trainer and/or Coqpit if requested + run: | + if [[ -n "${{ github.event.inputs.trainer_branch }}" ]]; then + uv add git+https://github.com/idiap/coqui-ai-Trainer --branch ${{ github.event.inputs.trainer_branch }} + fi + if [[ -n "${{ github.event.inputs.coqpit_branch }}" ]]; then + uv add git+https://github.com/idiap/coqui-ai-coqpit --branch ${{ github.event.inputs.coqpit_branch }} + fi + - name: Integration tests + run: | + resolution=highest + if [ "${{ matrix.python-version }}" == "3.9" ]; then + resolution=lowest-direct + fi + uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }} + - name: Upload coverage data + uses: actions/upload-artifact@v4 + with: + include-hidden-files: true + name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }} + path: .coverage.* + if-no-files-found: ignore coverage: if: always() - needs: test + needs: [unit, integration] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4