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

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

  • Falló al crear tarea o tipo checkenv Causa El nombre es indefinido
  • Pasa parámetro de perfil MAVEN de jenkins
  • El emulador de Android no se inició después de 360 ​​segundos
  • ¿Creando la preparación de la firma y de la liberación de apps android en jenkins / hudson?
  • Emulador de Android en Jenkins error: dispositivo desconectado
  • El proyecto Build Unity con Jenkins falló
  • Incrementa el número de compilación de Android en Integración continua
  • Uso de MultipartTypedOutput
  • Jenkins no puede resolver com.android.tools.build:gradle:3.0.0-alpha8
  • ¿Por qué el Sonar no lee mis resultados de JUnit XML en Jenkins?
  • Uso de Jenkins para construir un proyecto de gradol android falla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.