Run builds in parallel except for plugin test

This commit is contained in:
Michael Hansen 2022-05-05 12:16:33 -04:00
commit db3e68f12e
2 changed files with 16 additions and 22 deletions

View file

@ -116,28 +116,29 @@ ENV USER root
ENV MIMIC_DIR /tmp/mycroft/cache/tts/Mimic3TTSPlugin
# Start relevant services:
# 1. Start message bus, wait for ready message in log (5 min timeout)
# 2. Start audio service, wait for ready message in log (5 min timeout)
# 1. Start message bus, wait for ready message in log (10 min timeout)
# 2. Start audio service, wait for ready message in log (10 min timeout)
# 3. Run mycroft-speak with sample text
# 4. Watch cache directory for a file creation (5 min timeout)
# 4. Watch cache directory for a file creation (10 min timeout)
# 5. Copy first WAV file to known location
RUN mycroft-core/bin/mycroft-start bus && \
timeout 300 tail -n+0 -f /var/log/mycroft/bus.log | grep -iq 'message bus service started' && \
RUN export timeout_sec='600' && \
mycroft-core/bin/mycroft-start bus && \
timeout "${timeout_sec}" tail -n+0 -f /var/log/mycroft/bus.log | grep -iq 'message bus service started' && \
echo 'Message bus started' && \
mycroft-core/bin/mycroft-start audio && \
timeout 300 tail -n+0 -f /var/log/mycroft/audio.log | grep -iq 'audio service is ready' && \
timeout "${timeout_sec}" tail -n+0 -f /var/log/mycroft/audio.log | grep -iq 'audio service is ready' && \
echo 'Audio service started' && \
xargs -a tests/apope_sample.txt mycroft-core/bin/mycroft-speak && \
echo 'Speak request sent' && \
mkdir -p "${MIMIC_DIR}" && \
for i in $(seq 1 300); do \
for i in $(seq 1 "${timeout_sec}"); do \
wav_path="$(find "${MIMIC_DIR}" -name '*.wav' | head -n1)"; \
if [ -n "${wav_path}" ]; then \
mv "${wav_path}" tests/actual_sample.wav; \
break; \
fi; \
sleep 1; \
echo "Looking for WAV file in ${MIMIC_DIR}"; \
echo "${i}/${timeout_sec}: Looking for WAV file in ${MIMIC_DIR}"; \
done
# Check sample

View file

@ -25,10 +25,7 @@ DOCKER_TAG ?= mycroftai/mimic3
# Build source distributions for PyPI.
# Also tests installation.
dist:
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
while read -r platform; do \
docker buildx build . -f Dockerfile.dist --platform "$${platform}" --output "type=local,dest=dist/"; \
done
docker buildx build . -f Dockerfile.dist --platform "$(DOCKER_PLATFORM)" --output 'type=local,dest=dist/'; \
# Create virtual environment and install in editable mode locally.
install:
@ -37,7 +34,7 @@ install:
# Create self-contained Docker image.
# Also tests functionality.
docker:
docker buildx build . -f Dockerfile --platform $(DOCKER_PLATFORM) --tag "$(DOCKER_TAG)" $(DOCKER_OUTPUT)
docker buildx build . -f Dockerfile --platform "$(DOCKER_PLATFORM)" --tag "$(DOCKER_TAG)" $(DOCKER_OUTPUT)
# Create self-container Docker image with GPU support.
# Requires nvidia-docker.
@ -48,24 +45,20 @@ docker-gpu:
# These are different per platform (amd64, etc.).
# It's critical that deterministic mode is used to generate and test.
sample:
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
while read -r platform; do \
docker buildx build . -f Dockerfile.sample --platform "$${platform}" --output "type=local,dest=tests/"; \
done
docker buildx build . -f Dockerfile.sample --platform "$(DOCKER_PLATFORM)" --output 'type=local,dest=tests/'; \
# Create Debian packages (packaged with apope voice).
# Also tests installation.
debian:
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
while read -r platform; do \
docker buildx build . -f Dockerfile.debian --platform "$${platform}" --output "type=local,dest=dist/"; \
done
docker buildx build . -f Dockerfile.debian --platform "$(DOCKER_PLATFORM)" --output 'type=local,dest=dist/'; \
# Build TTS plugin distribution package.
# https://github.com/MycroftAI/plugin-tts-mimic3
#
# Also tests with latest Mycroft.
# Cannot run tests in parallel because of message bus port conflicts.
plugin-dist:
echo "$(DOCKER_PLATFORM)" | sed -e 's/,/\n/g' | \
while read -r platform; do \
docker buildx build . -f Dockerfile.plugin --platform "$${platform}" --output "type=local,dest=dist/"; \
docker buildx build . -f Dockerfile.plugin --platform "$${platform}" --output 'type=local,dest=dist/'; \
done