Files
antigravity/.gitea/workflows/agile-squad.yaml
2025-12-19 17:14:19 +02:00

101 lines
4.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Agile Squad Operations
run-name: 🚀 Antigravity Daily Cycle
on:
schedule:
# UTC Time: 07:00(09 UA), 11:00(13 UA), 15:00(17 UA), 19:00(21 UA)
- cron: '0 7,11,15,19 * * *'
# Кнопка для ручного запуску (щоб перевірити прямо зараз)
workflow_dispatch:
jobs:
# === АГЕНТ 1: РАНКОВИЙ ЗБІР (Standup) ===
standup-check:
runs-on: ubuntu-latest
container: node:16-bullseye
steps:
- name: 📞 Check Connectivity
run: |
apt-get update && apt-get install -y curl
# Перевіряємо, чи відповідає Gitea (код 200/300)
# Якщо Gitea лежить - немає сенсу працювати далі
curl -f -I https://git.smagentsconsulting.uk/ || exit 1
echo "✅ Gitea is Alive. Starting the day..."
# === АГЕНТ 2: ОСНОВНА РОБОТА (Worker) ===
heavy-worker:
needs: standup-check # Чекаємо, поки пройде перевірка зв'язку
runs-on: ubuntu-latest
container:
image: node:16-bullseye
# Прокидаємо сокет, щоб запускати docker compose
volumes:
- /var/run/docker.sock:/var/run/docker.sock
steps:
- name: 📥 Check out repository
uses: actions/checkout@v3
- name: 🛠️ Setup Docker Tools
run: |
# Встановлюємо найновіший Docker CLI вручну (як ми вже робили)
apt-get update && apt-get install -y curl tar
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.3.tgz -o docker.tgz
tar xzvf docker.tgz && mv docker/docker /usr/local/bin/ && chmod +x /usr/local/bin/docker
- name: 🔨 Run Main Task
run: |
# Запускаємо основний скрипт у мережі stack_app_net
# --rm видаляє контейнер після роботи, щоб не займати місце
docker compose run --rm antigravity_core python main.py
# === АГЕНТ 3: АУДИТОР (QA) ===
qa-auditor:
needs: heavy-worker # Запускається ТІЛЬКИ після завершення роботи Worker
runs-on: ubuntu-latest
container:
image: node:16-bullseye
volumes:
- /var/run/docker.sock:/var/run/docker.sock
steps:
- name: 📥 Check out repository
uses: actions/checkout@v3
- name: 🛠️ Setup Docker Tools
run: |
apt-get update && apt-get install -y curl tar python3
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.3.tgz -o docker.tgz
tar xzvf docker.tgz && mv docker/docker /usr/local/bin/ && chmod +x /usr/local/bin/docker
- name: 🛡️ Infrastructure Audit
run: |
# Якщо у нас є скрипт аудиту - запускаємо, якщо ні - просто статус
if [ -f audit.py ]; then
python3 audit.py
else
echo "Audit script not found, checking docker ps..."
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"
fi
# === АГЕНТ 4: РЕПОРТЕР (Scrum Master) ===
scrum-report:
if: always() # Виконується ЗАВЖДИ, навіть якщо Worker впав
needs: [standup-check, heavy-worker, qa-auditor]
runs-on: ubuntu-latest
steps:
- name: 📢 Daily Report
run: |
echo "========================="
echo "📊 SPRINT REPORT"
echo "========================="
echo "Standup Check: ${{ needs.standup-check.result }}"
echo "Heavy Worker: ${{ needs.heavy-worker.result }}"
echo "QA Audit: ${{ needs.qa-auditor.result }}"
echo "========================="
if [ "${{ needs.heavy-worker.result }}" == "success" ]; then
echo "✅ Day Successful. System Stable."
else
echo "❌ Issues Detected! Check logs above."
# Не ламаємо цей крок, просто повідомляємо
fi