# yara724/api — development deployment (Deploy-Develop) # Manual tasks: see ci-cd/TASK.md when: - event: push branch: main - event: manual clone: disable: true environment: WORKSPACE: /data/1-delploy/gitea/yara724/api PROJECT_NAME: Yara724 API ENVIRONMENT: Development APPLICATION_URL: https://y724-user.ittalie.ir/api GIT_COMMIT_URL: https://git.ittalie.com/Yara724/api/commit/ GIT_BRANCH: main COMPOSE_FILE: docker-compose.yml SUCCESS_COLOR: "#36a64f" FAILURE_COLOR: "#dc3545" steps: pull: image: alpine/git:latest volumes: - /data/1-delploy/gitea/yara724/api:/workspace commands: - cd /workspace - git pull origin main - date +%s > /workspace/.wp-deploy-start deploy: image: docker:26-cli volumes: - /var/run/docker.sock:/var/run/docker.sock - /data/1-delploy/gitea/yara724/api:/workspace commands: - cd /workspace - docker compose -f docker-compose.yml up -d --build notify-success: image: alpine:3.20 volumes: - /data/1-delploy/gitea/yara724/api:/workspace environment: ROCKETCHAT_WEBHOOK: from_secret: rocketchat_webhook when: - status: success commands: - apk add --no-cache curl jq git > /dev/null - | set -euo pipefail cd /workspace COMMIT_HASH="$(git rev-parse --short HEAD)" DEPLOY_START="$(cat /workspace/.wp-deploy-start)" DEPLOY_END="$(date +%s)" DEPLOY_DURATION="$((DEPLOY_END - DEPLOY_START))" COMMIT_1="$(git log -1 --pretty=format:'%s')" COMMIT_2="$(git log -2 --pretty=format:'%s' | tail -n1)" COMMIT_3="$(git log -3 --pretty=format:'%s' | tail -n1)" TITLE="✅ ${PROJECT_NAME} - ${ENVIRONMENT} ✅" TEXT="🌐 **URL**: ${APPLICATION_URL} 🔖 **Commit Hash**: [${COMMIT_HASH}](${GIT_COMMIT_URL}${COMMIT_HASH}) 📝 **Recent Changes**: • ${COMMIT_1} • ${COMMIT_2} • ${COMMIT_3} ⏱️ **Deployment Duration**: ${DEPLOY_DURATION}s" payload="$(jq -n \ --arg title "$TITLE" \ --arg text "$TEXT" \ --arg color "$SUCCESS_COLOR" \ '{text: $title, attachments: [{text: $text, color: $color}]}')" curl -fsS -H "Content-Type: application/json" -d "$payload" "$ROCKETCHAT_WEBHOOK" >/dev/null rm -f /workspace/.wp-deploy-start notify-failure: image: alpine:3.20 volumes: - /data/1-delploy/gitea/yara724/api:/workspace environment: ROCKETCHAT_WEBHOOK: from_secret: rocketchat_webhook when: - status: failure commands: - apk add --no-cache curl jq git > /dev/null - | set -euo pipefail cd /workspace COMMIT_HASH="$(git rev-parse --short HEAD 2>/dev/null || echo unknown)" TITLE="💥 ${PROJECT_NAME} - ${ENVIRONMENT} 💥" TEXT="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🌐 **Application URL** ${APPLICATION_URL} 🔖 **Commit** \`${COMMIT_HASH}\` ⚠️ **Pipeline failed** — check Woodpecker for the failing step. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" payload="$(jq -n \ --arg title "$TITLE" \ --arg text "$TEXT" \ --arg color "$FAILURE_COLOR" \ '{text: $title, attachments: [{text: $text, color: $color}]}')" curl -fsS -H "Content-Type: application/json" -d "$payload" "$ROCKETCHAT_WEBHOOK" >/dev/null || true rm -f /workspace/.wp-deploy-start