Conversation
WalkthroughВ pull request добавлена полная инфраструктура CI/CD для проекта на 1C:Enterprise, включающая три новых GitHub Action для извлечения версий и загрузки расширений, а также четыре новых workflow для экспорта исходников, сборки артефактов на Windows и запуска тестов с матрицей по операционным системам и локалям. Changes
Sequence Diagram(s)sequenceDiagram
participant GH as GitHub Actions
participant Export as step-export-xml
participant Build as step-build-artifacts-windows
participant Test as step-run-tests
GH->>Export: trigger (push/pull_request_target)
activate Export
Export->>Export: checkout sources
Export->>Export: extract RAT version
Export->>Export: install EDT 2023.1.2
Export->>Export: export configuration & tests to export/
Export->>Export: archive to export.7z
Export-->>GH: artifact: designer-src
deactivate Export
GH->>Build: trigger (after export_to_designer)
activate Build
Build->>Build: download artifact (designer-src)
Build->>Build: install 1C:Enterprise 8.3.21.1895
Build->>Build: extract sources
Build->>Build: create infobase
Build->>Build: import RAT & tests
Build->>Build: save configuration
Build-->>GH: artifact: build-artifacts
deactivate Build
loop for each [v8_version, locale, os]
GH->>Test: trigger (after build_artifacts)
activate Test
Test->>Test: download artifact (build-artifacts)
Test->>Test: prepare OS environment
Test->>Test: install 1C:Enterprise
Test->>Test: create infobase & load extensions
alt Linux
Test->>Test: xvfb-run + ibsrv + tests
else Windows
Test->>Test: ibsrv + 1cv8c.exe tests
end
Test-->>GH: JUnit report + artifact
deactivate Test
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Причина: множество взаимосвязанных workflow файлов с условной логикой, матричными стратегиями, кросс-платформенными различиями (Linux/Windows), управлением процессами, обработкой артефактов и интеграцией с внешними действиями. Требуется отдельная проверка каждого workflow и понимание взаимодействия между ними. Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (8)
.github/workflows/step-build-artifacts-windows.yml (1)
33-41: Закрепите версию действия вместо использования @main.Использование
@mainделает workflow уязвимым к неожиданным изменениям в действии. Рекомендуется использовать конкретный тег версии.- uses: 1CDevFlow/onec-setup-action@main + uses: 1CDevFlow/onec-setup-action@v1 # или последняя доступная версияПожалуйста, проверьте последнюю стабильную версию действия
1CDevFlow/onec-setup-actionи используйте её вместо@main..github/actions/extract-version/action.yml (1)
14-16: Добавьте обработку ошибок при извлечении версии.Если файл Configuration.mdo не существует или не содержит тега
<version>, grep вернёт пустую строку без ошибки. Это может привести к тихому сбою на следующих шагах.- name: Извлечение версии shell: bash - run: echo "version=$(cat ${{ inputs.path }}/Configuration/Configuration.mdo | grep -oP '(?<=<version>)[\d.]+')" >> $GITHUB_OUTPUT + run: | + VERSION=$(cat ${{ inputs.path }}/Configuration/Configuration.mdo | grep -oP '(?<=<version>)[\d.]+') + if [ -z "$VERSION" ]; then + echo "Error: Could not extract version from Configuration.mdo" >&2 + exit 1 + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT id: extract_version.github/actions/load-extension/action.yml (1)
13-18: Добавьте обработку ошибок для обеспечения целостности операций.При разделении команд без проверки кодов выхода, если одна команда завершится с ошибкой, информационная база может остаться в непредсказуемом состоянии.
- name: Загрузка расширения ${{inputs.name}} shell: bash run: | + set -e ibcmd infobase config load --db-path=file-db --extension=${{inputs.name}} --force ${{inputs.path}} ibcmd infobase config apply --db-path=file-db --extension=${{inputs.name}} --force ibcmd infobase config extension update --db-path=file-db --name=${{inputs.name}} --safe-mode=no --unsafe-action-protection=no.github/workflows/step-export-xml.yml (3)
60-68: Исправьте опечатку и уточните название шага.В названии шага есть опечатка "Ковертация" (должно быть "Конвертация"). Кроме того, это название не отражает, что конвертируется именно конфигурация, а не тесты (как в следующих шагах).
- - name: Ковертация исходников конфигурации + - name: Конвертация исходников конфигурации
70-86: Устраните дублирование названия шага и исправьте опечатки.Шаги на строках 70-77 и 79-86 имеют одинаковые названия "Ковертация исходников тестов" (с опечаткой), хотя конвертируют разные исходники (exts/rat vs tests). Это затрудняет отладку и понимание процесса.
- - name: Ковертация исходников тестов + - name: Конвертация исходников RAT uses: alkoleft/onec-edtcli-command-action@main with: export: true from: exts/rat to: export/rat timeout: 15 timeout-minutes: 15 - - name: Ковертация исходников тестов + - name: Конвертация исходников тестов uses: alkoleft/onec-edtcli-command-action@main with: export: true from: tests to: export/tests timeout: 15 timeout-minutes: 15
50-58: Закрепите версии действий вместо использования @main.Использование
@mainдля действий1CDevFlow/onec-setup-actionиalkoleft/onec-edtcli-command-actionделает workflow уязвимым к неожиданным изменениям. Рекомендуется использовать конкретные теги версий.Пожалуйста, обновите все ссылки на действия, чтобы использовать конкретные версии вместо
@main..github/workflows/step-run-tests.yml (1)
110-123: Закрепите версию действия write-file-action.Использование
@masterне рекомендуется в production-процессах. Следует использовать конкретный тег версии.- name: Создание файла конфигурации тестирования - uses: DamianReeves/write-file-action@master + uses: DamianReeves/write-file-action@v1Пожалуйста, проверьте последнюю стабильную версию действия и используйте её вместо
@master..github/workflows/perform-tests.yml (1)
25-28: Проверьте необходимость разрешений write для contents.У workflow установлено
contents: write, но не очевидно, зачем это нужно. Если workflow только читает содержимое репозитория, достаточноcontents: read. Избыток разрешений представляет потенциальный риск безопасности.Пожалуйста, убедитесь, что workflow фактически требует возможности записи в репозиторий. Если нет, измените на
contents: read.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
.github/actions/extract-version/action.yml(1 hunks).github/actions/load-extension/action.yml(1 hunks).github/workflows/perform-tests.yml(1 hunks).github/workflows/step-build-artifacts-windows.yml(1 hunks).github/workflows/step-export-xml.yml(1 hunks).github/workflows/step-run-tests.yml(1 hunks)
🔇 Additional comments (1)
.github/workflows/step-run-tests.yml (1)
97-107: Рецензия некорректна: локальные действия требуют шагаactions/checkout.Рецензия предлагает использовать локальное действие
./.github/actions/load-extension, но это невозможно без предварительного добавленияactions/checkout. В текущем рабочем процессе:
- Используется
workflow_call(переиспользуемый рабочий процесс)- Первый шаг загружает артефакты с помощью
actions/download-artifact@v4- В рабочем процессе нет шага
actions/checkout- Локальные действия требуют наличия кода в рабочей директории
Внешнее действие
1CDevFlow/workflows/actions/load-extension@mainможет быть намеренно использовано для этого типа рабочего процесса. Реализация предложения рецензии без добавленияactions/checkoutприведёт к ошибке выполнения.Likely an incorrect or invalid review comment.
| name: Конвертация исходников | ||
| uses: ./.github/workflows/step-export-xml.yml | ||
| with: | ||
| edt_version: 2023.1.2 |
There was a problem hiding this comment.
нужно 2024 актуальную взять
There was a problem hiding this comment.
Помнится были какие-то проблемы с новой версией в gh actions
There was a problem hiding this comment.
надо на edt cli переписать c ring
| steps: | ||
|
|
||
| - name: Установка 1С:Предприятие | ||
| uses: 1CDevFlow/onec-setup-action@main |
There was a problem hiding this comment.
я соглашусь с замечаниями кролика, лучше использовать явную версию
| timeout-minutes: 10 | ||
|
|
||
| - name: Загрузка исходников в формате конфигуратора | ||
| uses: actions/download-artifact@v4 |
There was a problem hiding this comment.
экшен с депендаботом нужно подключить, для обновления зависимостей GA
Summary by CodeRabbit
Chores