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
|
||||
!build-dist.sh
|
||||
!check.sh
|
||||
!test.sh
|
||||
!requirements_dev.txt
|
||||
!.isort.cfg
|
||||
!pylintrc
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -12,3 +12,5 @@ dist/
|
|||
.venv/
|
||||
*.wav
|
||||
*.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:
|
||||
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
|
||||
while read -r platform; do \
|
||||
echo "$${platform}"; \
|
||||
rm -rf "dist/$${platform}"; \
|
||||
docker buildx build . -f Dockerfile.binary --platform "$${platform}" --output "type=local,dest=dist/$${platform}"; \
|
||||
done
|
||||
|
||||
debian:
|
||||
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 = {
|
||||
"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
|
||||
kreisbogenförmiges farbiges Lichtband in einer von der Sonne
|
||||
beschienenen Regenwand oder -wolke wahrgenommen wird.""",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
af_ZA/google_nwu 292fa486a38b96a3e3d1b071e58377620953da12f49b2427cdff82969b933b9b
|
||||
de_DE/m-ailabs_low eafcf586b582c5ffb58c373a62e34c2e35d3b4b5d9d49288dabfacb50bc4fa8c
|
||||
de_DE/thorsten-emotion_low d7b765c4cc18364023b1e50d4cef1fc6b6d5a780ea1713d2a6ed60459dcbd02e
|
||||
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