diff --git a/.drone.yml b/.drone.yml index eb1bf44..f3b3944 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,6 +6,7 @@ trigger: event: - push - pull_request + - tag steps: - name: gradle-build @@ -15,3 +16,18 @@ steps: commands: - gradle --no-daemon clean build - 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 diff --git a/README.md b/README.md index 4083c60..501204c 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,27 @@ gradle build - запуск Docker pipeline; - `gradle clean build`; -- вывод содержимого `build/libs`. +- вывод содержимого `build/libs`; +- по тегу — публикует jar-ы из `build/libs/*.jar` как Gitea Release. Для работы 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 или путях к файлам.