Feat: Add Sequential Agile Pipeline (4 Agents)
This commit is contained in:
100
.gitea/workflows/agile-squad.yaml
Normal file
100
.gitea/workflows/agile-squad.yaml
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
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
|
||||||
Reference in New Issue
Block a user