Groovy + Google = Groogle

Groogle Gradle Plugin

GroogleGradle es un plugin para Gradle que nos permite crear tareas en nuestro build.gradle que se integran con los servicios de Google. Por ejemplo dispondremos de una tarea que nos permitirá copiar el contenido de una carpeta que se haya ubicada en Google Drive al directorio de trabajo del proyecto

Plugin

Lo primero que deberemos incluir es el plugin groogle junto con el resto de plugins del proyecto.

Así mismo, para poder acceder a los servicios de Google debemos proporcionar unas credenciales que debemos haber obtenido desde la consola de Google. Dichas credenciales las podemos proporcionar como un fichero, como una cadena de texto o como una variable de entorno

            plugins {
                id 'com.puravida.gradle.groogle'
            }

            groogle{
                credentials 'GROOGLE_CREDENTIALS' (1)

                credentials '{"type": "service_account", "project_id": ...}' (2)

                credentials file('credentials.json')  (3)

                credentials 'credentials.json'    (4)

                appName 'gradle-groogle'

                scopes DRIVE, SHEET
            }


            plugins {
                id 'com.puravida.gradle.groogle'
            }

            groogle{
                credentials 'groogle-688bcfc07d1b.json'
                asService true
                scopes DRIVE, SHEET
            }
1 Credenciales como cadena en variable de entorno
2 Credenciales como cadena
3 Credenciales en un fichero
4 Credenciales en un fichero indicando la ruta al mismo

fromDrive

Una vez que tengamos añadido el plugin, tendremos una task del tipo FromDriveTask que nos permitirá copiar el contenido de una carpeta remota.

Esta tarea puede servir, por ejemplo, para obtener contenido que no se encuentra en el proyecto y que tiene que ser usado por este como imágenes, documentos, etc.

            fromDrive{
                from '1-amEeJa6KCVJbF_oMdSacf-NlCiIOWCu'    (1)
                into file('docs')                           (2)
                into 'docs'                                 (3)
            }
1 Indicar el ID de la carpeta Google a copiar
2 indicar un directorio como fichero
3 indicar un directorio mediante una cadena

toDrive

Una vez que tengamos añadido el plugin, tendremos una task del tipo ToDriveTask que nos permitirá copiar el contenido de una carpeta local en nuestro drive.

Esta tarea puede servir, por ejemplo, para guardar los resultados de un build en una carpeta Drive compartida.

            toDrive{
                into 'test-upload-${new Date().format('yyyy-mm-dd')}'    (1)
                from file('test')                           (2)
                from 'test'                                 (3)
            }
1 Indicar el nombre de la carpeta Google a crear, incluso generada dinámicamente
2 indicar un directorio como fichero
3 indicar un directorio mediante una cadena