Добавлены 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
39 lines
813 B
YAML
39 lines
813 B
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
release:
|
|
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 release
|
|
run: ./gradlew build -x test --no-daemon
|
|
|
|
- name: Get version from tag
|
|
id: get_version
|
|
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Create Release
|
|
uses: actions/forgejo-release@v2
|
|
with:
|
|
direction: upload
|
|
release-dir: build/libs
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
tag: ${{ github.ref_name }}
|