Files
ai-solver-test/.gitea/workflows/ai-solve-issue.yml
dimkk 51a80ccb6f
All checks were successful
Bun CI/CD / test (push) Successful in 9s
Bun CI/CD / deploy-staging (push) Has been skipped
Bun CI/CD / deploy-prod (push) Successful in 1s
fix
2026-01-03 21:15:45 +03:00

107 lines
3.9 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.
# .gitea/workflows/ai-solve-issue.yml
name: AI Issue Solver
on:
# Ручной запуск
workflow_dispatch:
inputs:
issue_number:
description: 'Issue number to solve'
required: true
type: number
# Автоматический запуск по метке
issues:
types: [labeled]
jobs:
solve:
# Запускать при ручном триггере ИЛИ при добавлении метки ai-solve
if: |
(gitea.event_name == 'workflow_dispatch') ||
(gitea.event_name == 'issues' && contains(gitea.event.labels.*.name, 'ai-solve'))
runs-on: opencode
steps:
- name: Debug environment
run: |
echo "=== Debug Info ==="
echo "Gitea context:"
echo "event_name: ${{ gitea.event_name }}"
echo "repository: ${{ gitea.repository }}"
echo "repository_owner: ${{ gitea.repository_owner }}"
echo "event.issue: ${{ toJSON(gitea.event.issue) }}"
echo "event.inputs: ${{ toJSON(gitea.event.inputs) }}"
echo "event.labels: ${{ toJSON(gitea.event.labels) }}"
echo "=== End Debug ==="
- name: Setup issue data
id: setup
run: |
echo "Determining issue number based on event type..."
if [[ "${{ gitea.event_name }}" == "workflow_dispatch" ]]; then
# Ручной запуск - берем из inputs
ISSUE_NUMBER="${{ gitea.event.inputs.issue_number }}"
echo "Manual run - Issue number: $ISSUE_NUMBER"
elif [[ "${{ gitea.event_name }}" == "issues" ]]; then
# Автоматический запуск - берем из события issue
ISSUE_NUMBER="${{ gitea.event.issue.number }}"
echo "Auto run - Issue number: $ISSUE_NUMBER"
else
echo "Unknown event type: ${{ gitea.event_name }}"
exit 1
fi
echo "issue_number=$ISSUE_NUMBER" >> $GITHUB_OUTPUT
echo "event_type=${{ gitea.event_name }}" >> $GITHUB_OUTPUT
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GGITEA_TOKEN }}
- name: Solve Issue
env:
GGITEA_URL: ${{ secrets.GGITEA_URL }}
GGITEA_TOKEN: ${{ secrets.GGITEA_TOKEN }}
REPO_OWNER: ${{ gitea.repository_owner }}
REPO_NAME: ${{ gitea.repository }}
ISSUE_NUMBER: ${{ steps.setup.outputs.issue_number }}
EVENT_TYPE: ${{ steps.setup.outputs.event_type }}
run: |
echo "=== Starting AI Issue Solver ==="
echo "Event type: $EVENT_TYPE"
echo "Repository: $REPO_OWNER/$REPO_NAME"
echo "Issue number: $ISSUE_NUMBER"
# Проверяем наличие команды solve-issue
if ! command -v solve-issue >/dev/null 2>&1; then
echo "❌ ERROR: solve-issue command not found in PATH!"
echo "Current PATH: $PATH"
echo "Trying to find solve-issue..."
find / -name "solve-issue" -type f 2>/dev/null | head -5
exit 1
fi
echo "✅ solve-issue found at: $(which solve-issue)"
echo "📋 Command info:"
solve-issue --help || echo "No help available"
echo "🚀 Executing solve-issue..."
# Запускаем с таймаутом на случай зависания
timeout 600 solve-issue
EXIT_CODE=$?
if [ $EXIT_CODE -eq 0 ]; then
echo "✅ solve-issue completed successfully"
elif [ $EXIT_CODE -eq 124 ]; then
echo "⏰ solve-issue timed out after 10 minutes"
exit 1
else
echo "❌ solve-issue failed with exit code: $EXIT_CODE"
exit $EXIT_CODE
fi
echo "=== AI Issue Solver finished ==="