Usando un valor de un archivo y actualizándolo usando un script de Linux:

1

Tengo un script de compilación automática para mi servidor de compilación que construye aplicaciones de Android. Como parte de este proceso de creación, necesito incrementar dos parámetros en uno de los archivos de la aplicación de Android después de la compilación y confirmar este archivo en el repositorio de Git.

Así que tengo que construir el siguiente script 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"

Ahora, el problema es que, en lugar de crear una confirmación con el nombre:

Comprometerse a cambiar la versión Manifiesta.

Quiero pasar la versión actual de la aplicación.

Porque he creado un version.txt archivo que contiene la versión actual que será lanzada, Quiero en el proceso de la compilación para que obtenga el valor de este archivo y lo coloque como parte del nombre de confirmación, así como actualizar este archivo automáticamente con la próxima versión para la próxima confirmación.

Emil Adz
fuente

Respuestas:

2

en su version.txt póngalo como una variable de shell como APPVER="version"

Luego en tu uso de bash script . /path/to/version.txt luego exportar la variable con la línea export APPVER

esto importará esa variable en su script de compilación y la usará donde desee el nombre usando la variable $ APPVER

Commit to change Manifest $APPVER

en respuesta al comentario

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

EDITAR: se olvidó de agregar el comando de exportación EDITAR: forma añadida para incrementar ... y corregir algunos errores y formateo

Fegnoid
fuente
Por lo tanto, algunas preguntas: según entiendo para que el archivo esté disponible, debo agregarlo con un (punto) (.) Al inicio del script, y justo después de agregar Export APPVER en el scrpit. ¿Esto me permitirá usar $ APPVER en el nombre de confirmación?
Emil Adz
Digamos que el texto en el archivo es APPVER = "1.110" ¿cómo puedo incrementar la versión en 1 a "1.111"?
Emil Adz
Bueno, esto funciona muy bien, acabo de salir con la actualización del archivo a la nueva versión. ¿Podría decirme cómo puedo actualizar el parámetro APPVER en el archivo version.txt?
Emil Adz
El problema es que bash no tiene que ver con números de punto flotante como 1.110, solo puede manejar números enteros, he pensado en una idea que puede hacer el trabajo pero involucraría reglas sobre cómo se hace su versión; la agregaré a mi respuesta
Fegnoid
¿Qué pasa si hago dos parámetros en mi archivo de versión: MAJOR y MINOT y los conecto en la salida como $ MAJOR + "." + $ MINOR (si está escrito de esta manera en Linux) y actualizo solo la versión secundaria. Esto sería suficiente para mí, ¿se puede hacer esto?
Emil Adz