/ / build.grayl версии въз основа на git - git, groovy, grale

build.grayl версии въз основа на git - git, groovy, gradle

Аз съм модния модар и аз използвам ForgeGradle приставка за изграждане на моделите ми.

В момента се опитвам да настроя схема за версиране, базирана на моите git ревизии и хеш.Първоначално под системата PKGBUILD на архитектурата на linux ще използвам:

pkgver() {
cd $_pkgbase
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

което ще завърши с нещо подобно r392.2cc2ebc

Опитвам се със следното:

ext.revision = "git rev-list --count HEAD".execute()
ext.hash     = "git rev-parse --short HEAD".execute()
version      = "r${revision.text}.${hash.text}"

което ми дава почти това, от което се нуждая, r70?.11ae542?; не сте сигурни как да се отървете от ? във всяка част на версията. Gradle 2.0, предложения?

По - нататъшно разследване поради Питър Нидервиезер"Коментарът ми ме кара да тичам с помощта на информационния флаг и изглежда, че newlines се забиват в името на файла:

Executing task ":reobf" (up-to-date check took 0.004 secs) due to:
Output file build/libs/CreepyPastaCraft-1.7.x-r70
.11ae542
-universal.jar has changed.

Отговори:

8 за отговор № 1

Е, тъй като Петър отказа да направи своя коментар в отговор, ще отговоря на собствения си въпрос в полза на другите, които искат да направят същото:

ext.revision = "git rev-list --count HEAD".execute().text.trim()
ext.hash = "git rev-parse --short HEAD".execute().text.trim()
version = "r${revision}.${hash}"

Това съживява същия резултат като израза на баш в моя въпрос.


1 за отговор № 2

Ако искате версията да бъде референтната абревиатура, която понастоящем е отметнато (име на клон или име на маркер), това е всичко, което е необходимо:

version "git rev-parse --abbrev-ref HEAD".execute().getText().trim()

Това обаче ще определи версията като "HEAD", ако главата не е клон или маркер. Ако бихте искали версията да се основава на краткия хеш при тези обстоятелства, можете да направите следното:

version "git rev-parse --abbrev-ref HEAD".execute().getText().trim()
if (version.equals("HEAD")) {
version "git rev-parse --short HEAD".execute().getText().trim()
}