Files
agentik/.gitea/workflows/release.yml
T
subochev 6c53e1c87d ci: release workflow читает креды из Secrets (а не из subochev/devops/publish)
subochev/devops/publish хардкодно берёт BINOM_REPO_USER/PASSWORD через
${{ vars.* }}, но безопаснее хранить их в Secrets (шифрованные).
Заменил вызов devops/publish на inline './gradlew publish' с теми же
-Pbinom.repo.user/password — функционально идентично, но читает из
secrets напрямую.

Также убрал JDK setup шаг из publish-libraries (был лишним, т.к.
agentik не использует Android SDK).
2026-09-15 22:35:11 +03:00

94 lines
3.9 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.
- 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
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 }}