Publish jars as a Gitea release on tag push
Add a gitea-release step to the Drone pipeline that uploads everything in build/libs/*.jar to a Gitea Release named after the pushed tag, authenticating with a gitea_token secret. The step is guarded with when.event tag, and tag was added to the pipeline trigger so the build itself runs for tag events. Document the one-time token / secret setup and the tag workflow in the README.
This commit is contained in:
16
.drone.yml
16
.drone.yml
@@ -6,6 +6,7 @@ trigger:
|
|||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
|
- tag
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: gradle-build
|
- name: gradle-build
|
||||||
@@ -15,3 +16,18 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- gradle --no-daemon clean build
|
- gradle --no-daemon clean build
|
||||||
- ls -la build/libs
|
- ls -la build/libs
|
||||||
|
|
||||||
|
- name: gitea-release
|
||||||
|
image: plugins/gitea-release
|
||||||
|
settings:
|
||||||
|
api_key:
|
||||||
|
from_secret: gitea_token
|
||||||
|
base_url: https://git.nevetime.ru
|
||||||
|
files:
|
||||||
|
- build/libs/*.jar
|
||||||
|
title: ${DRONE_TAG}
|
||||||
|
checksum:
|
||||||
|
- sha256
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|||||||
23
README.md
23
README.md
@@ -144,6 +144,27 @@ gradle build
|
|||||||
|
|
||||||
- запуск Docker pipeline;
|
- запуск Docker pipeline;
|
||||||
- `gradle clean build`;
|
- `gradle clean build`;
|
||||||
- вывод содержимого `build/libs`.
|
- вывод содержимого `build/libs`;
|
||||||
|
- по тегу — публикует jar-ы из `build/libs/*.jar` как Gitea Release.
|
||||||
|
|
||||||
Для работы Drone runner должен иметь доступ в интернет, чтобы скачать зависимости Gradle/Fabric.
|
Для работы Drone runner должен иметь доступ в интернет, чтобы скачать зависимости Gradle/Fabric.
|
||||||
|
|
||||||
|
### Автоматический релиз по тегу
|
||||||
|
|
||||||
|
Чтобы Drone выложил собранный мод в раздел Releases репозитория, нужны две разовые настройки и одна команда на каждую новую версию.
|
||||||
|
|
||||||
|
**Один раз:**
|
||||||
|
|
||||||
|
1. В Gitea: `Settings → Applications → Generate New Token`. Дать токену права `write:repository`. Скопировать.
|
||||||
|
2. В Drone, на странице репозитория: `Settings → Secrets → New Secret`. Имя — `gitea_token`, значение — токен из шага 1. Поставить галку `Allow Pull Requests` снять (релизы только из push/tag).
|
||||||
|
|
||||||
|
**На каждую новую версию:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git tag v1.0.0
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Drone поднимет тег как событие, соберёт мод и положит `client-irc-chat-<версия>.jar` в `https://git.nevetime.ru/Arkon/fdgdfg/releases/tag/v1.0.0`. Версия в имени jar-а берётся из `mod_version` в `gradle.properties` — обычно её стоит поднимать вместе с тегом, чтобы они совпадали.
|
||||||
|
|
||||||
|
Если что-то идёт не так, посмотреть лог конкретного шага `gitea-release` в Drone — плагин печатает HTTP-ответ Gitea, по нему сразу видно, проблема в токене, URL или путях к файлам.
|
||||||
|
|||||||
Reference in New Issue
Block a user