ci: maven-publish всех модулей + Gitea release workflow
- build.gradle.kts (root): настроен maven-publish для всех сабпроектов; репо 'caffeine' (Nexus) с setAllowInsecureProtocol=true, POM-метаданные (Apache-2.0, subochev as developer, scm). Version берётся из -Pversion=<tag> с fallback 0.1.0. - gradle.properties: дефолтная version=0.1.0 для локальных билдов. - .gitea/workflows/release.yml: триггер на release.published; две job'ы — publish-libraries (subochev/devops/publish action с BINOM_REPO_* env-vars) и build-standalone (собирает :standalone shadowJar, прикрепляет standalone-<version>-all.jar и sources.jar к release assets через softprops/action-gh-release + GITEA_TOKEN). - В пяти KMP-модулях (skills, storage-core, agent-toolsets, server, client) добавлен api(libs.kotlinx.serialization.core) — раньше commonMain компилировался только на JVM, и эта зависимость была пропущена; теперь commonMain корректно публикуется как Gradle Module Metadata. Локальная проверка: ./gradlew publishToMavenLocal — все 11 модулей × 9-10 таргетов ./gradlew jvmTest — все тесты зелёные ./gradlew :standalone:shadowJar — 240MB fatjar, Main-Class загружается
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Триггерится при публикации релиза в 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).
|
||||
# 2. build-standalone — собирает :standalone fatjar (shadowJar) и прикрепляет
|
||||
# standalone-<version>-all.jar к release как downloadable asset.
|
||||
name: release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
publish-libraries:
|
||||
name: Publish KMP libraries → caffeine Nexus
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# agentik не использует Android-target ни в одном модуле (все KMP-таргеты
|
||||
# JVM + native), поэтому Android SDK шаг из litert-kmp тут не нужен.
|
||||
|
||||
- name: Publish libraries
|
||||
uses: https://git.binom.pw/subochev/devops/publish@main
|
||||
with:
|
||||
version: ${{ gitea.ref_name }}
|
||||
|
||||
build-standalone:
|
||||
name: Build standalone fatjar
|
||||
runs-on: ubuntu-latest
|
||||
needs: publish-libraries
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: '21'
|
||||
distribution: 'adopt'
|
||||
|
||||
- name: Build shadowJar
|
||||
shell: bash
|
||||
run: ./gradlew :standalone:shadowJar -Dorg.gradle.jvmargs=-Xmx4096M --no-daemon --no-watch-fs --stacktrace
|
||||
|
||||
- name: Compute version for filename
|
||||
id: ver
|
||||
shell: bash
|
||||
run: echo "version=${GITEA_REF_NAME}" >> "$GITEA_OUTPUT"
|
||||
|
||||
- name: Attach standalone jar to release
|
||||
uses: https://github.com/softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
standalone/build/libs/standalone-*-all.jar
|
||||
standalone/build/libs/standalone-*-sources.jar
|
||||
fail_on_unmatched_files: false
|
||||
generate_release_notes: false
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
Reference in New Issue
Block a user