Android build release apk en jenkins, sin guardar mi contraseña en texto plano

Necesito poder construir la versión de lanzamiento de mi apk, usando un trabajo de Jenkins.

De leer la siguiente pregunta SO

Cómo crear una versión firmada apk archivo utilizando Gradle?

Yo entiendo que puedo hacerlo de una de dos maneras. Pida al usuario que introduzca la contraseña en la solicitud de cmd o guarde los detalles de mi contraseña en un archivo de texto sin formato que no se comprometa con git y que viva en mi máquina local.

Ninguno de estos funcionará cuando se ejecuta el trabajo de construcción en jenkins sin embargo. 1) No puedo ganar la entrada del usuario porque esto puede estar funcionando en el medio de la noche (no sé incluso cómo conseguir la entrada del usuario de la línea del cmd incluso si el usuario estaba en su máquina) 2) Cualquier persona que puede Tener acceso a esa caja de compilación, sería capaz de cat el contenido de ese archivo ya sea a través de la línea cmd o de otro trabajo build.gradle ejecutándose en ese servidor jenkins.

¿Alguien sabe de todos modos puedo mantener mi contraseña oculta, pero para que el trabajo Jenkins puede acceder a él?

Gracias

2 Solutions collect form web for “Android build release apk en jenkins, sin guardar mi contraseña en texto plano”

Puede usar Plugin de contraseña de máscara, que hace precisamente eso. O la misma funcionalidad está incluida en el plugin EnvInject, y tarde o temprano todos los proyectos de Jenkins obtienen una necesidad de plugin EnvInject (que hace muchas otras cosas), así que también podría empezar a usarlo ahora.

Para usar de forma segura una contraseña desde un paso de compilación / posterior a la compilación

  • Instale el complemento EnvInject .
  • Bajo Jenkins Global Configuration , encuentre la sección Global Passwords .
  • Añada un nombre (este será el nombre de la variable de entorno) y la contraseña (será ****).
  • En Configuración de trabajos , busque la sección Entorno de generación .
  • Marque Inyectar contraseñas a la construcción como variables de entorno .
  • Marque las contraseñas globales .

En cualquier paso de compilación, ahora puede usar $name (como se definió anteriormente) para referirse a una contraseña como si lo estuviera escribiendo en texto plano.

  • La variable de contraseña se inyecta sólo en el tiempo de ejecución del trabajo (escribir $name en la línea de comandos del servidor por sí mismo no producirá nada, y como todas las variables de Jenkins, no es persistente).
  • El registro de consola de trabajo mostrará **** lugar de contraseña, si aparece.
  • Puede configurar contraseñas por trabajo, en lugar de global, para que otros trabajos no puedan utilizarlo.

La única preocupación de seguridad es que si alguien tiene permisos administrativos para configurar su trabajo , puede escribir echo $name > secretpassword.txt en un paso de compilación y luego revisar el archivo en el área de trabajo. Pero debe tener cuidado con a quién asignar derechos administrativos.

Deberías echar un vistazo a este complemento

https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

  • Integración continua con Android
  • No se encontraron artefactos que coincidan con el patrón de archivo "** / target / *. Apk"
  • Jenkins no puede resolver com.android.tools.build:gradle:3.0.0-alpha8
  • Uso de Jenkins para construir un proyecto de gradol android falla
  • Cómo configurar la versión de la aplicación de Android por número de construir en Jenkins?
  • Plugin de Android Emulator no funciona en Jenkins
  • Ejecute pruebas de unidad android y pruebas de instrumentación en Jenkins (Gradle)
  • Jenkins - Utiliza Genymotion VM en lugar de Android Emulator
  • Pasa parámetro de perfil MAVEN de jenkins
  • Proyecto Android de Maven en Jenkins
  • Jenkins no puede iniciar el emulador
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.