Добавлены 3 workflow для CI/CD: 1. build.yml - основная сборка и тесты - Запускается на push в main/develop и PR - Сборка с Gradle - Запуск тестов - Загрузка артефактов (jar файлы, отчеты тестов) 2. release.yml - автоматические релизы - Запускается при создании тега v* - Сборка без тестов - Создание релиза с артефактами 3. quality.yml - проверка качества кода - Проверка стиля кода - Тесты с покрытием (Jacoco) - Загрузка отчетов о покрытии Требования: - JDK 21 (Temurin) - Gradle wrapper - Forgejo Actions runner
47 lines
965 B
YAML
47 lines
965 B
YAML
name: Build and Test
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, develop ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up JDK 21
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '21'
|
|
distribution: 'temurin'
|
|
cache: gradle
|
|
|
|
- name: Grant execute permission for gradlew
|
|
run: chmod +x gradlew
|
|
|
|
- name: Build with Gradle
|
|
run: ./gradlew build --no-daemon
|
|
|
|
- name: Run tests
|
|
run: ./gradlew test --no-daemon
|
|
|
|
- name: Upload build artifacts
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: lochat-plugin
|
|
path: build/libs/*.jar
|
|
retention-days: 30
|
|
|
|
- name: Upload test results
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: test-results
|
|
path: build/reports/tests/
|
|
retention-days: 7
|