name: CI # Self-hosted раннер на инфре B (host-исполнение, тёплый Gradle-кэш). # ВАЖНО: без JS-экшенов (actions/checkout, upload-artifact и т.п.) — в host-режиме # act_runner 0.2.13 криво резолвит путь к node-экшену (MODULE_NOT_FOUND, задвоенный # hostexecutor/.cache/act). Поэтому checkout делаем обычным git. # Release-сборка/публикация в Gitea Release — пока вручную (та же причина: JS-экшены); # см. docs/CI.md. on: push: branches: [main] env: JAVA_HOME: /usr/lib/jvm/java-21-openjdk-amd64 ANDROID_HOME: /opt/android-sdk GRADLE_OPTS: "-Dorg.gradle.daemon=false" jobs: verify: # detekt + unit-тесты + debug-сборка на каждый push в main runs-on: [self-hosted, f7-android] steps: - name: Checkout (git, без JS-экшена) env: GITHUB_TOKEN: ${{ github.token }} run: | set -e rm -rf src && mkdir src && cd src git init -q git remote add origin "https://x-access-token:${GITHUB_TOKEN}@git.f7cloud.ru/${GITHUB_REPOSITORY}.git" git -c protocol.version=2 fetch -q --depth 1 origin "${GITHUB_SHA}" git checkout -q FETCH_HEAD - name: Статанализ (detekt + ktlint) run: cd src && ./gradlew detekt --no-daemon - name: Unit-тесты run: cd src && ./gradlew testDebugUnitTest --no-daemon - name: Debug-сборка run: cd src && ./gradlew :app:assembleDebug --no-daemon