-
Notifications
You must be signed in to change notification settings - Fork 4
Установка ci #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Установка ci #4
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
нужно 2024 актуальную взять
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Помнится были какие-то проблемы с новой версией в gh actions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
надо на edt cli переписать c ring
| steps: | ||
|
|
||
| - name: Установка 1С:Предприятие | ||
| uses: 1CDevFlow/onec-setup-action@main |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
я соглашусь с замечаниями кролика, лучше использовать явную версию
| timeout-minutes: 10 | ||
|
|
||
| - name: Загрузка исходников в формате конфигуратора | ||
| uses: actions/download-artifact@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
экшен с депендаботом нужно подключить, для обновления зависимостей GA
Summary by CodeRabbit
Chores