From af606047db7cabc7dbd2e37a00095bf761ea6615 Mon Sep 17 00:00:00 2001 From: Benjamin Labrecque Date: Thu, 30 Jul 2026 12:01:25 +0200 Subject: [PATCH] fix: cicd --- .gitea/scripts/deploy-service.sh | 29 +++++++++++++++++++++++++++ .gitea/workflows/deploy.yml | 34 +++++++++++++++++++++----------- 2 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 .gitea/scripts/deploy-service.sh diff --git a/.gitea/scripts/deploy-service.sh b/.gitea/scripts/deploy-service.sh new file mode 100644 index 0000000..ba5aa4b --- /dev/null +++ b/.gitea/scripts/deploy-service.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +SERVICE_NAME=$1 +AGEBD_ENV=$2 + +SERVICE_NAME_LOWER=$(echo "$SERVICE_NAME" | tr '[:upper:]' '[:lower:]') +SERVICE_NAME_UPPER=$(echo "$SERVICE_NAME" | tr '[:lower:]' '[:upper:]') +SERVICE_DIR=/sls/bd/hla/${AGEBD_ENV}/services/${SERVICE_NAME_LOWER}/current +SYSTEMD_UNIT_NAME=AGEBD-SERVICE-${SERVICE_NAME_UPPER}.service +SYSTEMD_UNIT_FILE_PATH=${SERVICE_DIR}/systemd/${SYSTEMD_UNIT_NAME} + +mkdir -p ${SERVICE_DIR} + +rsync -avz --delete --exclude='.venv' \ + ./services/${SERVICE_NAME_LOWER}/current/ \ + ${SERVICE_DIR}/ + + +if [ -f "${SYSTEMD_UNIT_FILE_PATH}" ]; then + sed -i "s/{{ *agebd_env* }}/${AGEBD_ENV}/g" "${SYSTEMD_UNIT_FILE_PATH}" +fi + +mkdir -p ${HOME}/.config/systemd/user +ln -sf "${SYSTEMD_UNIT_FILE_PATH}" "${HOME}/.config/systemd/user/${SYSTEMD_UNIT_NAME}" + +export XDG_RUNTIME_DIR="/run/user/\$(id -u)" +systemctl --user daemon-reload +systemctl --user enable "${SYSTEMD_UNIT_NAME}" +systemctl --user restart "${SYSTEMD_UNIT_NAME}" diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index b677256..3c248c9 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -123,15 +123,27 @@ jobs: echo "matrix=$SERVICES" >> $GITHUB_OUTPUT deploy-services: - name: "Deploy Service (${{ matrix.service }})" needs: detect-changed-services - if: ${{ needs.detect-changed-services.outputs.matrix != '[]' }} - strategy: - fail-fast: false - matrix: - service: ${{ fromJson(needs.detect-changed-services.outputs.matrix) }} - - uses: ./.gitea/workflows/deploy-service.yml - with: - service_name: ${{ matrix.service }} - environment: ${{ env.AGEBD_ENV }} + runs-on: hla-dev + if: needs.detect-changed-services.outputs.matrix != '[]' && needs.detect-changed-services.outputs.matrix != '' + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Deploy Changed Services + run: | + # Parse JSON array produced by detect-changed-services + SERVICES_JSON='${{ needs.detect-changed-services.outputs.matrix }}' + + echo "Services to deploy: $SERVICES_JSON" + + # Iterate over each service and deploy + echo "$SERVICES_JSON" | jq -r '.[]' | while read -r SERVICE; do + if [ -z "$SERVICE" ]; then continue; fi + + echo "==========================================" + echo "Deploying service: $SERVICE (${{ env.AGEBD_ENV }})" + echo "==========================================" + + ./.gitea/scripts/deploy-service.sh ${SERVICE} ${{ env.AGEBD_ENV }} + done