# Триггерится при публикации релиза в Gitea. Публикует все KMP-библиотеки # (jvm + native таргеты) в домашний Nexus-репозиторий "caffeine". # # Fatjar-ы запускаемых модулей (:standalone, :agentik-cli). # :agentik-tui был исключён из сборки 2026-09-17 (см. settings.gradle.kts). # НЕ собираются и НЕ крепятся к релизу здесь. Сборка артефактов # выполняется локально из исходников (или руками через `./gradlew # ::shadowJar`) и загружается в релиз через Gitea UI / API # отдельно от этого workflow. # # Требуемые Gitea Action Variables: # BINOM_REPO_URL — например http://192.168.76.117/repository/caffeine/ # Требуемые Gitea Action Secrets: # BINOM_REPO_USER, BINOM_REPO_PASSWORD — креды Nexus с правами на публикацию. name: release on: release: types: [published] concurrency: group: release-${{ github.ref }} cancel-in-progress: false jobs: publish-libraries: name: Publish KMP libraries → caffeine Nexus runs-on: ubuntu-latest timeout-minutes: 120 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup JDK 21 uses: actions/setup-java@v4 with: java-version: '21' distribution: 'adopt' - name: Gradle cache uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper .gradle key: ${{ runner.os }}-gradle-agentik-${{ hashFiles('**/*.gradle.kts', '**/gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle-agentik- - name: Publish libraries (all KMP targets, all modules) shell: bash env: BINOM_REPO_USER: ${{ secrets.BINOM_REPO_USER }} BINOM_REPO_PASSWORD: ${{ secrets.BINOM_REPO_PASSWORD }} BINOM_REPO_URL: ${{ vars.BINOM_REPO_URL }} run: | # Gitea Actions (Forgejo-based) экспонирует env-переменные под # GITHUB_-префиксом: GITHUB_REF_NAME = "v0.1.0" для tag-trigger'а. # Внутри bash подставляем через $GITHUB_REF_NAME (а не # ${GITEA_REF_NAME} — Forgejo этого не подставляет). # # Версия = имя тега (с trim'ом опционального префикса 'v'), чтобы # тег "1" публиковался как pw.binom.agentik::1. CICD не # хардкодит версию — берёт её из тега каждый раз. TAG="$GITHUB_REF_NAME" VERSION="${TAG#v}" echo "Publishing version: ${VERSION}" ./gradlew \ "-Pversion=${VERSION}" \ "-Pbinom.repo.url=${BINOM_REPO_URL}" \ "-Pbinom.repo.user=${BINOM_REPO_USER}" \ "-Pbinom.repo.password=${BINOM_REPO_PASSWORD}" \ publish \ -Dorg.gradle.jvmargs=-Xmx4096M \ --no-daemon --no-watch-fs --stacktrace