Files
agentik/.gitea/workflows/release.yml
T
subochev 31c4b1cfc4
release / Publish KMP libraries → caffeine Nexus (release) Failing after 20s
release / Build standalone fatjar (release) Has been skipped
ci: debug-логирование для diagnosis CI version=empty issue
2026-09-15 23:24:22 +03:00

102 lines
4.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Триггерится при публикации релиза в Gitea. Делает две вещи:
# 1. publish-libraries — публикует все KMP-библиотеки (jvm + все нативные таргеты)
# в домашний Nexus-репозиторий "caffeine".
# 2. build-standalone — собирает :standalone fatjar (shadowJar) и прикрепляет
# standalone-<version>-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:
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 шаг не нужен.
- name: Setup JDK 21
uses: actions/setup-java@v4
with:
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.
# URL передаём явно через -Pbinom.repo.url (build.gradle.kts читает только
# -P-свойства, не env-vars).
- 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: |
echo "=== DEBUG: gradle properties and version ==="
./gradlew --no-daemon properties 2>&1 | grep -E "^version|^group" | head -10
echo "=== DEBUG: explicit properties task ==="
./gradlew --no-daemon help -Pversion=v0.1.0 2>&1 | tail -5
echo "=== DEBUG: try publishing memory-vector explicitly ==="
./gradlew \
":memory-vector:publishKotlinMultiplatformPublicationToCaffeineRepository" \
":memory-vector:publishJvmPublicationToCaffeineRepository" \
"-Pversion=${GITEA_REF_NAME}" \
"-Pbinom.repo.url=${BINOM_REPO_URL}" \
"-Pbinom.repo.user=${BINOM_REPO_USER}" \
"-Pbinom.repo.password=${BINOM_REPO_PASSWORD}" \
-Dorg.gradle.jvmargs=-Xmx4096M \
--no-daemon --no-watch-fs --stacktrace
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
# softprops по дефолту читает GITHUB_TOKEN, но это имя зарезервировано
# в Gitea (она сама использует). Поэтому читаем из кастомного RELEASE_TOKEN.
token: ${{ secrets.RELEASE_TOKEN }}
fail_on_unmatched_files: false
generate_release_notes: false
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}