Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion scripts/ci/smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,18 @@ done
if [ -n "${SKILL_ID:-}" ]; then
command -v ovos-skill-launcher > /dev/null
python -c "import ovos_workshop, ovos_bus_client"
echo "skill ${SKILL_ID}: launcher and workshop present"
# The launcher finds the skill by the id its package registers. An id no package
# registers makes the container exit at start ("unknown skill_id") and restart
# forever: six skill images did, on both channels, after their skills were renamed.
python - "$SKILL_ID" << 'REGISTERED'
import sys
from importlib.metadata import entry_points
wanted = sys.argv[1]
ids = sorted({ep.name for group in ("opm.skill", "ovos.plugin.skill") for ep in entry_points(group=group)})
if wanted not in ids:
sys.exit(f"skill {wanted}: no installed package registers it; registered: {', '.join(ids) or 'none'}")
REGISTERED
echo "skill ${SKILL_ID}: launcher and workshop present, and its package registers that id"
fi
if [ -n "${SMOKE_BIN:-}" ]; then
command -v "$SMOKE_BIN" > /dev/null
Expand Down
3 changes: 2 additions & 1 deletion skills/skill-alerts/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-alerts.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-alerts.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-camera/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-camera.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-camera.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-date-time/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,5 @@ ENV SKILL_ID="ovos-skill-date-time.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-date-time.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-duckduckgo/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,5 @@ ENV SKILL_ID="ovos-skill-ddg.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-ddg.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-easter-eggs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="skill-easter-eggs.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-easter-eggs.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-fallback-unknown/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-fallback-unknown.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-fallback-unknown.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-ggwave/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-ggwave.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-ggwave.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
5 changes: 3 additions & 2 deletions skills/skill-hello-world/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ ADD --chmod=0644 https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/${O
RUN --mount=type=cache,target=/home/ovos/.cache/uv,uid=1000,gid=1000,sharing=locked \
uv pip install ovos-skill-hello-world -c /tmp/constraints.txt

ENV SKILL_ID="skill-ovos-hello-world.openvoiceos"
ENV SKILL_ID="ovos-skill-hello-world.openvoiceos"

# A loaded skill answers mycroft.<skill_id>.is_ready (ovos-workshop ProcessStatus); the start period
# covers waiting for ovos-core to become ready before the skill loads.
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-ovos-hello-world.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-homeassistant/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="skill-homeassistant.oscillatelabsllc"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-homeassistant.oscillatelabsllc"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-homescreen/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="skill-ovos-homescreen.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-ovos-homescreen.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
5 changes: 3 additions & 2 deletions skills/skill-jokes/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ ADD --chmod=0644 https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/${O
RUN --mount=type=cache,target=/home/ovos/.cache/uv,uid=1000,gid=1000,sharing=locked \
uv pip install ovos-skill-icanhazdadjokes -c /tmp/constraints.txt

ENV SKILL_ID="skill-ovos-icanhazdadjokes.openvoiceos"
ENV SKILL_ID="ovos-skill-icanhazdadjokes.openvoiceos"

# A loaded skill answers mycroft.<skill_id>.is_ready (ovos-workshop ProcessStatus); the start period
# covers waiting for ovos-core to become ready before the skill loads.
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-ovos-icanhazdadjokes.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
5 changes: 3 additions & 2 deletions skills/skill-parrot/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ ADD --chmod=0644 https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/${O
RUN --mount=type=cache,target=/home/ovos/.cache/uv,uid=1000,gid=1000,sharing=locked \
uv pip install ovos-skill-parrot -c /tmp/constraints.txt

ENV SKILL_ID="skill-ovos-parrot.openvoiceos"
ENV SKILL_ID="ovos-skill-parrot.openvoiceos"

# A loaded skill answers mycroft.<skill_id>.is_ready (ovos-workshop ProcessStatus); the start period
# covers waiting for ovos-core to become ready before the skill loads.
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-ovos-parrot.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
5 changes: 3 additions & 2 deletions skills/skill-personal/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ ADD --chmod=0644 https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/${O
RUN --mount=type=cache,target=/home/ovos/.cache/uv,uid=1000,gid=1000,sharing=locked \
uv pip install ovos-skill-personal -c /tmp/constraints.txt

ENV SKILL_ID="ovos-skill-personal.OpenVoiceOS"
ENV SKILL_ID="ovos-skill-personal.openvoiceos"

# A loaded skill answers mycroft.<skill_id>.is_ready (ovos-workshop ProcessStatus); the start period
# covers waiting for ovos-core to become ready before the skill loads.
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-personal.OpenVoiceOS"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
5 changes: 3 additions & 2 deletions skills/skill-randomness/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ ADD --chmod=0644 https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/${O
RUN --mount=type=cache,target=/home/ovos/.cache/uv,uid=1000,gid=1000,sharing=locked \
uv pip install ovos-skill-randomness -c /tmp/constraints.txt

ENV SKILL_ID="ovos-skill-randomness.openvoiceos"
ENV SKILL_ID="skill-ovos-randomness.openvoiceos"

# A loaded skill answers mycroft.<skill_id>.is_ready (ovos-workshop ProcessStatus); the start period
# covers waiting for ovos-core to become ready before the skill loads.
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-randomness.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-tunein/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,5 @@ ENV SKILL_ID="skill-ovos-tunein.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-ovos-tunein.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-volume/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-volume.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-volume.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-weather/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,5 @@ ENV SKILL_ID="ovos-skill-weather.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-weather.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-wikihow/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-wikihow.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-wikihow.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
5 changes: 3 additions & 2 deletions skills/skill-wikipedia/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,12 @@ ADD --chmod=0644 https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/${O
RUN --mount=type=cache,target=/home/ovos/.cache/uv,uid=1000,gid=1000,sharing=locked \
uv pip install ovos-skill-wikipedia -c /tmp/constraints.txt

ENV SKILL_ID="skill-ovos-wikipedia.openvoiceos"
ENV SKILL_ID="ovos-skill-wikipedia.openvoiceos"

# A loaded skill answers mycroft.<skill_id>.is_ready (ovos-workshop ProcessStatus); the start period
# covers waiting for ovos-core to become ready before the skill loads.
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "skill-ovos-wikipedia.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-wolfie/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,5 @@ ENV SKILL_ID="ovos-skill-wolfie.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-wolfie.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"
3 changes: 2 additions & 1 deletion skills/skill-wordnet/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ ENV SKILL_ID="ovos-skill-wordnet.openvoiceos"
HEALTHCHECK --interval=60s --timeout=10s --retries=3 --start-period=180s \
CMD ovos-hc -s "$SKILL_ID" || exit 1

CMD ["ovos-skill-launcher", "ovos-skill-wordnet.openvoiceos"]
# Shell form, so the launcher gets the id SKILL_ID holds; exec keeps it PID 1.
CMD exec ovos-skill-launcher "$SKILL_ID"