Auto Merge of PR 70 - ha-assist-overhaul_2025-12-06T20-34-20
Merged by Trez.One
This commit was merged in pull request #70.
This commit is contained in:
@@ -69,74 +69,36 @@ jobs:
|
||||
notification_title: "GITEA: Services TBD"
|
||||
notification_message: "Generating list of services to deploy..."
|
||||
|
||||
- name: Save both versions of docker-compose.yml
|
||||
run: |
|
||||
git show origin/main:docker-compose.yml > docker-compose-main.yml || touch docker-compose-main.yml
|
||||
cp docker-compose.yml docker-compose-head.yml
|
||||
|
||||
- name: Detect added, deleted, and modified services
|
||||
id: detect_services
|
||||
run: |
|
||||
echo "Getting services from main and ${{ github.ref_name }}"
|
||||
|
||||
# Dynamically find all docker-compose YAML files (root + compose folder)
|
||||
COMPOSE_FILES=($(find . -maxdepth 2 -type f -name 'docker-compose*.yml' | sort))
|
||||
|
||||
echo "Found Compose files:"
|
||||
printf '%s\n' "${COMPOSE_FILES[@]}"
|
||||
|
||||
# Temp files to store all services
|
||||
touch services_main_all.txt services_head_all.txt
|
||||
|
||||
for f in "${COMPOSE_FILES[@]}"; do
|
||||
echo "Processing $f"
|
||||
|
||||
# Create a safe filename by replacing slashes with underscores
|
||||
safe_f=$(echo "$f" | sed 's|[./]|_|g')
|
||||
|
||||
# Fetch main version
|
||||
git show origin/main:"$f" > "main_${safe_f}" 2>/dev/null || touch "main_${safe_f}"
|
||||
cp "$f" "head_${safe_f}"
|
||||
|
||||
# Extract services and append to global list
|
||||
yq '.services | keys | .[]' "main_${safe_f}" >> services_main_all.txt 2>/dev/null || true
|
||||
yq '.services | keys | .[]' "head_${safe_f}" >> services_head_all.txt 2>/dev/null || true
|
||||
done
|
||||
|
||||
# Sort and deduplicate
|
||||
sort -u services_main_all.txt -o services_main_all.txt
|
||||
sort -u services_head_all.txt -o services_head_all.txt
|
||||
yq '.services | keys | .[]' docker-compose-main.yml | sort > services_main.txt
|
||||
yq '.services | keys | .[]' docker-compose-head.yml | sort > services_head.txt
|
||||
|
||||
echo "Creating list of modified services..."
|
||||
touch service_changes.txt
|
||||
|
||||
# Added services
|
||||
comm -13 services_main_all.txt services_head_all.txt | while read service; do
|
||||
comm -13 services_main.txt services_head.txt | while read service; do
|
||||
echo "$service: added" >> service_changes.txt
|
||||
done
|
||||
|
||||
# Modified services (parallelized)
|
||||
comm -12 services_main_all.txt services_head_all.txt | xargs -n1 -P4 -I{} bash -c '
|
||||
service="{}"
|
||||
modified=0
|
||||
for f in "${COMPOSE_FILES[@]}"; do
|
||||
safe_f=$(echo "$f" | sed "s|[./]|_|g")
|
||||
yq ".services[\"$service\"]" "main_${safe_f}" > tmp_main.yml 2>/dev/null || continue
|
||||
yq ".services[\"$service\"]" "head_${safe_f}" > tmp_head.yml 2>/dev/null || continue
|
||||
if ! diff -q tmp_main.yml tmp_head.yml > /dev/null; then
|
||||
modified=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [[ $modified -eq 1 ]]; then
|
||||
comm -12 services_main.txt services_head.txt | while read service; do
|
||||
yq ".services[\"$service\"]" docker-compose-main.yml > tmp_main.yml
|
||||
yq ".services[\"$service\"]" docker-compose-head.yml > tmp_head.yml
|
||||
if ! diff -q tmp_main.yml tmp_head.yml > /dev/null; then
|
||||
echo "$service: modified" >> service_changes.txt
|
||||
fi
|
||||
'
|
||||
done
|
||||
|
||||
echo "Detected service changes:"
|
||||
cat service_changes.txt
|
||||
|
||||
if [[ -z $(cat service_changes.txt) ]]; then
|
||||
echo "watchtower" > service_changes.txt
|
||||
echo "Placeholder:"
|
||||
cat service_changes.txt
|
||||
fi
|
||||
|
||||
mod_svcs=$(cut -d':' -f1 service_changes.txt | sort | uniq | tr '\n' ' ' | sed 's/ *$//')
|
||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||
echo "$mod_svcs" >> "$GITHUB_OUTPUT"
|
||||
@@ -199,21 +161,6 @@ jobs:
|
||||
notification_title: "GITEA: Docker Compose Dry Run @ Benedikta"
|
||||
notification_message: "Starting Docker Compose dry run..."
|
||||
|
||||
- name: Get list of Compose files
|
||||
id: compose_file_list
|
||||
run: |
|
||||
compose_list=$(find . -type f -name "docker-compose*.yml" \
|
||||
-a ! -name "*windows*" \
|
||||
-a ! -name "*gui*" \
|
||||
-a ! -name "*macos*" \
|
||||
-a ! -name "*hivemind*" \
|
||||
-a ! -name "*server*" \
|
||||
-a ! -name "*raspberrypi*" \
|
||||
| sed -e ':a;N;$!ba;s/[\r\n]/ /g')
|
||||
|
||||
echo "compose_list=$compose_list" >> "$GITHUB_OUTPUT"
|
||||
echo "Compose files: $compose_list"
|
||||
|
||||
- name: Generate .env from Hashicorp Vault
|
||||
uses: https://git.trez.wtf/Trez/hc-vault-env@main
|
||||
with:
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
[submodule "ovos-compose"]
|
||||
path = ovos-compose
|
||||
url = https://github.com/OpenVoiceOS/ovos-docker.git
|
||||
branch = dev
|
||||
+31
-71
@@ -50,44 +50,22 @@ services:
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
hivemind_cli:
|
||||
container_name: hivemind_cli
|
||||
hostname: hivemind_cli
|
||||
restart: unless-stopped
|
||||
image: docker.io/smartgic/hivemind-cli:alpha@sha256:896cb56b9c5b1a4eaeba0cb7c53ae173a4b0f777163cbd2573e2b183cbf41ceb
|
||||
pull_policy: always
|
||||
tty: true
|
||||
faster-whisper:
|
||||
container_name: faster-whisper
|
||||
environment:
|
||||
PUID: ${PUID}
|
||||
PGID: ${PGID}
|
||||
TZ: ${TZ}
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ${ULTIMA_DOCKER_DIR}/hivemind/config:/home/${HIVEMIND_USER}/.config/hivemind:z
|
||||
- ${ULTIMA_DOCKER_DIR}/hivemind/share:/home/${HIVEMIND_USER}/.local/share/hivemind:z
|
||||
depends_on:
|
||||
- hivemind_listener
|
||||
hivemind_listener:
|
||||
container_name: hivemind_listener
|
||||
hostname: hivemind_listener
|
||||
WHISPER_MODEL: large
|
||||
LOCAL_ONLY: #optional
|
||||
WHISPER_BEAM: 1 #optional
|
||||
WHISPER_LANG: en #optional
|
||||
image: lscr.io/linuxserver/faster-whisper:latest
|
||||
ports:
|
||||
- "10300:10300"
|
||||
restart: unless-stopped
|
||||
image: docker.io/smartgic/hivemind-listener:alpha@sha256:23f781ca805a81acebc16ecba7714df8214afa9e3b1929a7f1338fe1e0425103
|
||||
pull_policy: ${PULL_POLICY:-always}
|
||||
tty: true
|
||||
environment:
|
||||
TZ: ${TZ}
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ${HIVEMIND_CONFIG_FOLDER}:/home/${HIVEMIND_USER}/.config/hivemind:z
|
||||
- ${HIVEMIND_SHARE_FOLDER}:/home/${HIVEMIND_USER}/.local/share/hivemind:z
|
||||
- ${HIVEMIND_CONFIG_FOLDER}/server.json:/home/${HIVEMIND_USER}/.config/hivemind-core/server.json
|
||||
depends_on:
|
||||
ovos_core:
|
||||
condition: service_started
|
||||
healthcheck:
|
||||
test: ["CMD", "pgrep", "-f", "hivemind-listener"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 15s
|
||||
- ${ULTIMA_DOCKER_DIR}/faster-whisper/:/config
|
||||
meilisearch:
|
||||
container_name: meilisearch
|
||||
environment:
|
||||
@@ -109,6 +87,25 @@ services:
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ollama:/root/.ollama
|
||||
piper:
|
||||
image: lscr.io/linuxserver/piper:latest
|
||||
container_name: piper
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Etc/UTC
|
||||
- PIPER_VOICE=en_US-lessac-medium
|
||||
- LOCAL_ONLY= #optional
|
||||
- PIPER_LENGTH=1.0 #optional
|
||||
- PIPER_NOISE=0.667 #optional
|
||||
- PIPER_NOISEW=0.333 #optional
|
||||
- PIPER_SPEAKER=0 #optional
|
||||
- NO_STREAMING= #optional
|
||||
volumes:
|
||||
- ${ULTIMA_DOCKER_DIR}/faster-whisper/:/config
|
||||
ports:
|
||||
- 10200:10200
|
||||
restart: unless-stopped
|
||||
portainer-agent:
|
||||
container_name: portainer_agent
|
||||
image: portainer/agent:latest@sha256:d2e5f753e8c668f7a7916621e64d6535f212b0f6ade5389a6fcc1f6830405ccf
|
||||
@@ -152,43 +149,6 @@ services:
|
||||
volumes:
|
||||
- ${ULTIMA_DOCKER_DIR}/stable-diffusion-webui/data:/data
|
||||
- ${ULTIMA_DOCKER_DIR}/stable-diffusion-webui/output:/output
|
||||
faster-whisper:
|
||||
container_name: faster-whisper
|
||||
environment:
|
||||
PUID: ${PUID}
|
||||
PGID: ${PGID}
|
||||
TZ: ${TZ}
|
||||
WHISPER_MODEL: large
|
||||
LOCAL_ONLY: #optional
|
||||
WHISPER_BEAM: 1 #optional
|
||||
WHISPER_LANG: en #optional
|
||||
image: lscr.io/linuxserver/faster-whisper:latest@sha256:43ec95dc89ecca3e594c211604cdda55ae3979fe5108436c918121ee4393b403
|
||||
network_mode: host
|
||||
# ports:
|
||||
# - 10300:10300
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${ULTIMA_DOCKER_DIR}/faster-whisper/:/config
|
||||
piper:
|
||||
image: lscr.io/linuxserver/piper:latest@sha256:fddc63c2de74931d1234ae8bc7a9b0601f55aed7c8521562240566ee1af3ef67
|
||||
container_name: piper
|
||||
environment:
|
||||
PUID: ${PUID}}
|
||||
PGID: ${PGID}
|
||||
TZ: ${TZ}
|
||||
PIPER_VOICE: en_GB-alba-medium
|
||||
LOCAL_ONLY: #optional
|
||||
PIPER_LENGTH: 1.0 #optional
|
||||
PIPER_NOISE: 0.667 #optional
|
||||
PIPER_NOISEW: 0.333 #optional
|
||||
PIPER_SPEAKER: 0 #optional
|
||||
NO_STREAMING: #optional
|
||||
network_mode: host
|
||||
# ports:
|
||||
# - 10200:10200
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${ULTIMA_DOCKER_DIR}/piper/:/config
|
||||
volumes:
|
||||
ollama:
|
||||
name: ollama
|
||||
|
||||
-1
Submodule ovos-compose deleted from b88310b761
+1
-4
@@ -1,7 +1,4 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["local>trez/renovate-config"],
|
||||
"git-submodules": {
|
||||
"enabled": true
|
||||
}
|
||||
"extends": ["local>trez/renovate-config"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user