ci
This commit is contained in:
parent
008be49c51
commit
c4d2391604
4 changed files with 249 additions and 0 deletions
203
.forgejo/workflows/FIX_FLUTTER_GIT.md
Normal file
203
.forgejo/workflows/FIX_FLUTTER_GIT.md
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
# Исправление ошибки "Flutter directory is not a clone of the GitHub project"
|
||||
|
||||
**Дата**: 19 ноября 2025
|
||||
**Статус**: ✅ Исправлено
|
||||
|
||||
## Проблема
|
||||
|
||||
При выполнении CI/CD workflow для web app получали ошибку:
|
||||
|
||||
```
|
||||
Error: The Flutter directory is not a clone of the GitHub project.
|
||||
The flutter tool requires Git in order to operate properly;
|
||||
to install Flutter, see the instructions at:
|
||||
https://flutter.dev/get-started
|
||||
```
|
||||
|
||||
## Причина
|
||||
|
||||
Flutter SDK требует наличия Git для своей работы, так как:
|
||||
1. Flutter проверяет целостность своего SDK через Git
|
||||
2. Flutter использует Git для управления своими компонентами
|
||||
3. В некоторых runner'ах Git может не быть установлен по умолчанию
|
||||
|
||||
## Решение
|
||||
|
||||
Добавлены следующие изменения во все Flutter workflow:
|
||||
|
||||
### 1. Полный checkout репозитория
|
||||
|
||||
**Было**:
|
||||
```yaml
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
```
|
||||
|
||||
**Стало**:
|
||||
```yaml
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Полная история Git
|
||||
```
|
||||
|
||||
### 2. Явная установка Git
|
||||
|
||||
Добавлен новый шаг перед Setup Flutter:
|
||||
|
||||
```yaml
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
```
|
||||
|
||||
### 3. Включение кеширования Flutter
|
||||
|
||||
**Было**:
|
||||
```yaml
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
```
|
||||
|
||||
**Стало**:
|
||||
```yaml
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true # Включено кеширование
|
||||
```
|
||||
|
||||
## Обновленные файлы
|
||||
|
||||
1. ✅ `.forgejo/workflows/ci-web.yml` - Web App CI
|
||||
- Job: `test` - обновлен
|
||||
- Job: `build` - обновлен
|
||||
|
||||
2. ✅ `.forgejo/workflows/ci-mobile.yml` - Mobile App CI
|
||||
- Все jobs обновлены (3 job'а)
|
||||
|
||||
3. ✅ `.forgejo/workflows/code-quality.yml` - Code Quality
|
||||
- Job обновлен
|
||||
|
||||
## Преимущества изменений
|
||||
|
||||
### 1. Полная история Git (fetch-depth: 0)
|
||||
- Позволяет Git командам работать корректно
|
||||
- Необходимо для некоторых Flutter операций
|
||||
- Полезно для анализа изменений
|
||||
|
||||
### 2. Явная установка Git
|
||||
- Гарантирует наличие Git в runner
|
||||
- Избегает зависимости от базового образа
|
||||
- Работает на разных платформах (GitHub Actions, Forgejo Actions)
|
||||
|
||||
### 3. Кеширование Flutter (cache: true)
|
||||
- Ускоряет установку Flutter SDK
|
||||
- Экономит время на повторных запусках
|
||||
- Уменьшает нагрузку на сеть
|
||||
|
||||
## Проверка
|
||||
|
||||
После применения изменений:
|
||||
|
||||
1. **Commit изменения**:
|
||||
```bash
|
||||
git add .forgejo/workflows/
|
||||
git commit -m "fix: Add Git installation for Flutter workflows"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
2. **Запустить workflow вручную** через Forgejo UI:
|
||||
- Перейти в Actions
|
||||
- Выбрать workflow (например, Web App CI)
|
||||
- Нажать "Run workflow"
|
||||
|
||||
3. **Проверить логи**:
|
||||
- Шаг "Install Git" должен выполниться успешно
|
||||
- Шаг "Setup Flutter" должен пройти без ошибок
|
||||
- Шаг "Build web app" должен завершиться успешно
|
||||
|
||||
## Альтернативные решения
|
||||
|
||||
Если проблема сохраняется, можно попробовать:
|
||||
|
||||
### 1. Использовать Docker образ с предустановленным Flutter
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/cirruslabs/flutter:3.35.5
|
||||
```
|
||||
|
||||
### 2. Установить Flutter вручную
|
||||
|
||||
```yaml
|
||||
- name: Install Flutter manually
|
||||
run: |
|
||||
git clone https://github.com/flutter/flutter.git -b stable
|
||||
echo "$PWD/flutter/bin" >> $GITHUB_PATH
|
||||
```
|
||||
|
||||
### 3. Использовать flutter-action с git-path
|
||||
|
||||
```yaml
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
git-path: /usr/bin/git
|
||||
```
|
||||
|
||||
## Версия Flutter
|
||||
|
||||
Во всех workflow используется **Flutter 3.35.5 stable**, как указано в требованиях.
|
||||
|
||||
## Дополнительные настройки
|
||||
|
||||
### Если используется self-hosted runner
|
||||
|
||||
На self-hosted runner нужно убедиться что Git установлен:
|
||||
|
||||
```bash
|
||||
# На сервере runner'а
|
||||
ssh root@147.45.152.129
|
||||
|
||||
# Проверить Git
|
||||
git --version
|
||||
|
||||
# Если не установлен
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
```
|
||||
|
||||
### Если нужно обновить Flutter на сервере
|
||||
|
||||
```bash
|
||||
# На сервере
|
||||
cd /path/to/flutter
|
||||
git fetch
|
||||
git checkout stable
|
||||
git pull
|
||||
flutter doctor
|
||||
```
|
||||
|
||||
## Статус
|
||||
|
||||
🟢 **ИСПРАВЛЕНО**
|
||||
|
||||
Все Flutter workflow обновлены и должны работать корректно.
|
||||
|
||||
---
|
||||
|
||||
**Примечание**: Изменения применены ко всем workflow файлам, использующим Flutter, чтобы обеспечить единообразие и избежать подобных проблем в будущем.
|
||||
|
||||
|
|
@ -27,12 +27,20 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
|
|
@ -109,12 +117,20 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
|
|
@ -170,12 +186,20 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
|
|
|
|||
|
|
@ -25,12 +25,20 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
|
|
@ -95,12 +103,20 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
|
|
|
|||
|
|
@ -17,11 +17,17 @@ jobs:
|
|||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Git
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.35.5'
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v4
|
||||
|
|
|
|||
Loading…
Reference in a new issue