Add docker test build
This commit is contained in:
parent
cbe8a1c3db
commit
8b4f7e4517
8 changed files with 135 additions and 1 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
!install.sh
|
!install.sh
|
||||||
!build-dist.sh
|
!build-dist.sh
|
||||||
!check.sh
|
!check.sh
|
||||||
|
!test.sh
|
||||||
!requirements_dev.txt
|
!requirements_dev.txt
|
||||||
!.isort.cfg
|
!.isort.cfg
|
||||||
!pylintrc
|
!pylintrc
|
||||||
|
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -12,3 +12,5 @@ dist/
|
||||||
.venv/
|
.venv/
|
||||||
*.wav
|
*.wav
|
||||||
*.spec
|
*.spec
|
||||||
|
|
||||||
|
/samples
|
||||||
|
|
|
||||||
40
Dockerfile.test
Normal file
40
Dockerfile.test
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# Copyright 2022 Mycroft AI Inc.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Dockerfile for Mimic 3 (https://github.com/MycroftAI/mimic3)
|
||||||
|
#
|
||||||
|
# Runs code checks and creates source code distributions for PyPI.
|
||||||
|
#
|
||||||
|
# Requires Docker buildx: https://docs.docker.com/buildx/working-with-buildx/
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
FROM python:3.9
|
||||||
|
|
||||||
|
ARG TARGETARCH
|
||||||
|
ARG TARGETVARIANT
|
||||||
|
|
||||||
|
ENV LANG C.UTF-8
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
WORKDIR /build/mimic3
|
||||||
|
COPY ./ ./
|
||||||
|
|
||||||
|
# Install mimic3
|
||||||
|
RUN --mount=type=cache,id=pip-venv,target=/root/.cache/pip \
|
||||||
|
./install.sh
|
||||||
|
|
||||||
|
# Run tests
|
||||||
|
RUN --mount=type=cache,id=voices,target=/root/.local/share/mimic3 \
|
||||||
|
./test.sh
|
||||||
7
Makefile
7
Makefile
|
|
@ -36,10 +36,15 @@ docker-gpu:
|
||||||
binaries:
|
binaries:
|
||||||
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
|
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
|
||||||
while read -r platform; do \
|
while read -r platform; do \
|
||||||
echo "$${platform}"; \
|
|
||||||
rm -rf "dist/$${platform}"; \
|
rm -rf "dist/$${platform}"; \
|
||||||
docker buildx build . -f Dockerfile.binary --platform "$${platform}" --output "type=local,dest=dist/$${platform}"; \
|
docker buildx build . -f Dockerfile.binary --platform "$${platform}" --output "type=local,dest=dist/$${platform}"; \
|
||||||
done
|
done
|
||||||
|
|
||||||
debian:
|
debian:
|
||||||
debian/build-debian.sh
|
debian/build-debian.sh
|
||||||
|
|
||||||
|
test:
|
||||||
|
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
|
||||||
|
while read -r platform; do \
|
||||||
|
docker buildx build . -f Dockerfile.test --platform "$${platform}"; \
|
||||||
|
done
|
||||||
|
|
|
||||||
40
test.sh
Executable file
40
test.sh
Executable file
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright 2022 Mycroft AI Inc.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Generate samples and compare hashes
|
||||||
|
#
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
# Directory of *this* script
|
||||||
|
this_dir="$( cd "$( dirname "$0" )" && pwd )"
|
||||||
|
|
||||||
|
expected_hashes="${this_dir}/tests/sample_hashes.txt"
|
||||||
|
if [ ! -s "${expected_hashes}" ]; then
|
||||||
|
echo "Missing ${expected_hashes}";
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Path to virtual environment
|
||||||
|
: "${venv:=${this_dir}/.venv}"
|
||||||
|
|
||||||
|
if [ -d "${venv}" ]; then
|
||||||
|
# Activate virtual environment if available
|
||||||
|
source "${venv}/bin/activate"
|
||||||
|
fi
|
||||||
|
|
||||||
|
diff "${expected_hashes}" <(python3 tests/get_sample_hashes.py)
|
||||||
|
|
@ -33,6 +33,9 @@ from mimic3_tts import Mimic3Settings, Mimic3TextToSpeechSystem, Voice
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
_TEST_SENTENCES = {
|
_TEST_SENTENCES = {
|
||||||
|
"af": """'n Reënboog is 'n boog van gekleurde lig wat ontstaan wanneer die
|
||||||
|
son teen 'n waterdruppel skyn en die wit lig dan deur middel van
|
||||||
|
ligbreking in die volledige kleurspektrum opgebreek word.""",
|
||||||
"de": """Der Regenbogen ist ein atmosphärisch-optisches Phänomen, das als
|
"de": """Der Regenbogen ist ein atmosphärisch-optisches Phänomen, das als
|
||||||
kreisbogenförmiges farbiges Lichtband in einer von der Sonne
|
kreisbogenförmiges farbiges Lichtband in einer von der Sonne
|
||||||
beschienenen Regenwand oder -wolke wahrgenommen wird.""",
|
beschienenen Regenwand oder -wolke wahrgenommen wird.""",
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
af_ZA/google_nwu 292fa486a38b96a3e3d1b071e58377620953da12f49b2427cdff82969b933b9b
|
||||||
de_DE/m-ailabs_low eafcf586b582c5ffb58c373a62e34c2e35d3b4b5d9d49288dabfacb50bc4fa8c
|
de_DE/m-ailabs_low eafcf586b582c5ffb58c373a62e34c2e35d3b4b5d9d49288dabfacb50bc4fa8c
|
||||||
de_DE/thorsten-emotion_low d7b765c4cc18364023b1e50d4cef1fc6b6d5a780ea1713d2a6ed60459dcbd02e
|
de_DE/thorsten-emotion_low d7b765c4cc18364023b1e50d4cef1fc6b6d5a780ea1713d2a6ed60459dcbd02e
|
||||||
de_DE/thorsten_low 60967155b319d1a78c2dade56a4f484cf6996c506f2d24b95dad717fafdad302
|
de_DE/thorsten_low 60967155b319d1a78c2dade56a4f484cf6996c506f2d24b95dad717fafdad302
|
||||||
|
|
|
||||||
42
tests/update-hashes.sh
Executable file
42
tests/update-hashes.sh
Executable file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright 2022 Mycroft AI Inc.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Updates sample hashes and puts WAVs in samples/ directory.
|
||||||
|
# These should be manually verified.
|
||||||
|
#
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
# Directory of *this* script
|
||||||
|
this_dir="$( cd "$( dirname "$0" )" && pwd )"
|
||||||
|
base_dir="$(realpath "${this_dir}/..")"
|
||||||
|
|
||||||
|
samples_dir="${base_dir}/samples"
|
||||||
|
expected_hashes="${base_dir}/tests/sample_hashes.txt"
|
||||||
|
|
||||||
|
# Path to virtual environment
|
||||||
|
: "${venv:=${base_dir}/.venv}"
|
||||||
|
|
||||||
|
if [ -d "${venv}" ]; then
|
||||||
|
# Activate virtual environment if available
|
||||||
|
source "${venv}/bin/activate"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "${samples_dir}"
|
||||||
|
python3 tests/get_sample_hashes.py \
|
||||||
|
--output-dir "${samples_dir}" \
|
||||||
|
> "${expected_hashes}"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue