diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0153a1d..559135b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,10 +1,17 @@ # Триггерится при публикации релиза в Gitea. Делает две вещи: # 1. publish-libraries — публикует все KMP-библиотеки (jvm + все нативные таргеты) -# в домашний Nexus-репозиторий "caffeine" через subochev/devops/publish action. -# Переменные BINOM_REPO_URL / BINOM_REPO_USER / BINOM_REPO_PASSWORD задаются -# в Gitea Action Variables для репозитория (Settings → Actions → Variables). +# в домашний Nexus-репозиторий "caffeine". # 2. build-standalone — собирает :standalone fatjar (shadowJar) и прикрепляет # standalone--all.jar к release как downloadable asset. +# +# Требуемые Gitea Action Variables: +# BINOM_REPO_URL — например http://nexus.xx/repository/caffeine/ +# Требуемые Gitea Action Secrets: +# BINOM_REPO_USER, BINOM_REPO_PASSWORD — креды Nexus с правами на публикацию. +# RELEASE_TOKEN — токен Gitea с правами write:repository (для +# softprops/action-gh-release чтобы прикрепить JAR к релизу). +# Используем кастомное имя вместо GITHUB_TOKEN/GITEA_TOKEN, т.к. +# оба зарезервированы в Gitea. name: release on: @@ -20,12 +27,33 @@ jobs: uses: actions/checkout@v4 # agentik не использует Android-target ни в одном модуле (все KMP-таргеты - # JVM + native), поэтому Android SDK шаг из litert-kmp тут не нужен. + # JVM + native), поэтому Android SDK шаг не нужен. - - name: Publish libraries - uses: https://git.binom.pw/subochev/devops/publish@main + - name: Setup JDK 21 + uses: actions/setup-java@v4 with: - version: ${{ gitea.ref_name }} + java-version: '21' + distribution: 'adopt' + + # Раньше здесь стоял subochev/devops/publish@main, но он хардкодно + # читает BINOM_REPO_USER/PASSWORD из ${{ vars.* }}. Креды лежат в Secrets + # (безопаснее), поэтому публикуем inline — это просто `./gradlew publish` + # с теми же -Pbinom.repo.user/password, что и в devops/publish action. + - name: Publish libraries + 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: | + ./gradlew \ + -Pdisable-javadoc=true \ + "-Pversion=${GITEA_REF_NAME}" \ + "-Pbinom.repo.user=${BINOM_REPO_USER}" \ + "-Pbinom.repo.password=${BINOM_REPO_PASSWORD}" \ + publish \ + -Dorg.gradle.jvmargs=-Xmx4096M \ + --parallel --no-daemon --no-watch-fs --stacktrace build-standalone: name: Build standalone fatjar @@ -56,7 +84,10 @@ jobs: files: | standalone/build/libs/standalone-*-all.jar standalone/build/libs/standalone-*-sources.jar + # softprops по дефолту читает GITHUB_TOKEN, но это имя зарезервировано + # в Gitea (она сама использует). Поэтому читаем из кастомного RELEASE_TOKEN. + token: ${{ secrets.RELEASE_TOKEN }} fail_on_unmatched_files: false generate_release_notes: false env: - GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }} + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}