Используя значение из файла и обновляя его с помощью скрипта Linux:

759
Emil Adz

У меня есть скрипт автоматической сборки для моего сервера сборки, который собирает приложения для Android. В рамках этого процесса сборки мне нужно увеличить два параметра в одном из файлов приложения Android после сборки и зафиксировать этот файл в репозитории Git.

Поэтому я должен построить следующий скрипт bash:

#!/bin/bash clear echo "Start of Pull command" git pull echo "End of Pull command" echo "Start of incrementedRelease build" gradle incrementedRelease echo "End of incrementedRelease build" echo "Start of Commit command" git commit -a -m "======================== Commit to change Manifest Version ======================" echo "End of Commit command" echo "Start of Push command" git push echo "End of Push command" 

Теперь проблема в том, что вместо создания коммита с именем:

Обязательство изменить версию манифеста

Я хочу передать текущую версию приложения.

Поскольку я создал version.txtфайл, который содержит текущую версию, которая будет выпущена, я хочу, чтобы в процессе сборки он получил значение из этого файла и поместил его как часть имени коммита, а также обновил этот файл автоматически со следующей версией для следующего коммита.

1

1 ответ на вопрос

2
Fegnoid

in your version.txt put it as a shell variable such as APPVER="version"

Then in your bash script use . /path/to/version.txt then export the variable with the line export APPVER

this will then import that variable into your build script and use it where you want the name by using the variable $APPVER

Commit to change Manifest $APPVER

in answer to comment

MAJOR=`echo $APPVER| cut -c1-1` export MAJOR MINOR=`echo $APPVER | cut -c3-5` export MINOR NEWVER=$((MINOR + 1)) export NEWVER echo APPVER=$MAJOR.$NEWVER > /path/to/version.txt 

EDIT: forgot to add the export command EDIT: added way to increment... and fixed some mistakes and formating

Итак, несколько вопросов: как я понимаю, для того, чтобы файл был доступен, мне нужно добавить его с (точкой) (.) В начале скрипта, и сразу после него добавить экспортный APPVER в scrpit. это позволит мне использовать $ APPVER в имени коммита? Emil Adz 9 лет назад 0
Допустим, что текст в файле APPVER = "1.110", как я могу увеличить версию на 1 до "1.111"? Emil Adz 9 лет назад 0
Ну, это прекрасно работает, я только что ушел с обновлением файла до новой версии. Не могли бы вы сказать мне, как я могу обновить параметр APPVER в файле version.txt? Emil Adz 9 лет назад 0
Проблема в том, что bash не имеет дело с числами с плавающей запятой, такими как 1.110, он может обрабатывать только целые числа, я подумал о идее, которая может сделать работу, но будет включать в себя правила, касающиеся того, как работает ваша версия - я добавлю ее в свой ответ Fegnoid 9 лет назад 0
Так что, если я сделаю два параметра в своем файле версии: MAJOR и MINOT и подключу их к выводу, как $ MAJOR + "." + $ MINOR (если это даже написано в Linux), и обновлю только минорную версию. Это будет достаточно для меня, это может быть сделано? Emil Adz 9 лет назад 0
Да, см. Мой ответ на ответ Fegnoid 9 лет назад 0
Спасибо за помощь, есть только одна проблема. Когда файл перезаписывается, назначается новая версия, только файл изменяется на версию только без APPVER Emil Adz 9 лет назад 0
да, я увидел свою ошибку и отредактировал, чтобы отразить правильное эхо в файле, извините Fegnoid 9 лет назад 0
Да, видел это сейчас. Позвольте мне проверить это на секунду. Emil Adz 9 лет назад 0

Похожие вопросы