# Configurar CI/CD para tu aplicación R


## Requisitos previos

Completa todas las secciones anteriores de esta guía, comenzando con [Contenedorizar una aplicación R](/guides/r/configure-ci-cd/containerize/). Debes tener una cuenta de [GitHub](https://github.com/signup) y una cuenta verificada de [Docker](https://hub.docker.com/signup) para completar esta sección.

## Descripción general

En esta sección, aprenderás cómo configurar y usar GitHub Actions para compilar y probar tu imagen de Docker, así como para subirla (push) a Docker Hub. Completarás los siguientes pasos:

1. Crear un nuevo repositorio en GitHub.
2. Definir el flujo de trabajo de GitHub Actions.
3. Ejecutar el flujo de trabajo.

## Paso uno: Crear el repositorio

Crea un repositorio de GitHub, configura las credenciales de Docker Hub y sube tu código fuente.

1. [Crea un nuevo repositorio](https://github.com/new) en GitHub.

2. Abre la pestaña **Settings** (Configuración) del repositorio y ve a **Secrets and variables** (Secretos y variables) > **Actions** (Acciones).

3. Crea una nueva **Repository variable** (Variable de repositorio) llamada `DOCKER_USERNAME` con tu ID de Docker como valor.

4. Crea un nuevo [Token de Acceso Personal (PAT)](/security/access-tokens/#create-an-access-token) para Docker Hub. Puedes nombrar este token `docker-tutorial`. Asegúrate de que los permisos de acceso incluyan Read (Lectura) y Write (Escritura).

5. Agrega el PAT como un **Repository secret** (Secreto de repositorio) en tu repositorio de GitHub, con el nombre `DOCKERHUB_TOKEN`.

6. En tu repositorio local en tu máquina, ejecuta el siguiente comando para cambiar el origen al repositorio que acabas de crear. Asegúrate de cambiar `your-username` por tu nombre de usuario de GitHub y `your-repository` por el nombre del repositorio que creaste.

   ```console
   $ git remote set-url origin https://github.com/your-username/your-repository.git
   ```

7. Ejecuta los siguientes comandos para preparar (stage), confirmar (commit) y subir (push) tu repositorio local a GitHub.

   ```console
   $ git add -A
   $ git commit -m "my commit"
   $ git push -u origin main
   ```

## Paso dos: Configurar el flujo de trabajo

Configura tu flujo de trabajo de GitHub Actions para compilar, probar y subir la imagen a Docker Hub.

1. Ve a tu repositorio en GitHub y luego selecciona la pestaña **Actions** (Acciones).

2. Selecciona **set up a workflow yourself** (configurar un flujo de trabajo tú mismo).

   Esto te llevará a una página para crear un nuevo archivo de flujo de trabajo de GitHub Actions en tu repositorio, bajo `.github/workflows/main.yml` de forma predeterminada.

3. En la ventana del editor, copia y pega la siguiente configuración YAML.

   ```yaml
   name: ci

   on:
     push:
       branches:
         - main

   jobs:
     build:
       runs-on: ubuntu-latest
       steps:
         - name: Login to Docker Hub
           uses: docker/login-action@v4
           with:
             username: ${{ vars.DOCKER_USERNAME }}
             password: ${{ secrets.DOCKERHUB_TOKEN }}

         - name: Set up Docker Buildx
           uses: docker/setup-buildx-action@v4

         - name: Build and push
           uses: docker/build-push-action@v7
           with:
             platforms: linux/amd64,linux/arm64
             push: true
             tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest
   ```

   Para obtener más información sobre la sintaxis YAML para `docker/build-push-action`, consulta el [README de GitHub Action](https://github.com/docker/build-push-action/blob/master/README.md).

## Paso tres: Ejecutar el flujo de trabajo

Guarda el archivo de flujo de trabajo y ejecuta el trabajo.

1. Selecciona **Commit changes...** (Confirmar cambios...) y sube los cambios a la rama `main`.

   Después de subir la confirmación, el flujo de trabajo se inicia automáticamente.

2. Ve a la pestaña **Actions** (Acciones). Esta muestra el flujo de trabajo.

   Al seleccionar el flujo de trabajo, se te mostrará el desglose de todos los pasos.

3. Cuando el flujo de trabajo se haya completado, ve a tus [repositorios en Docker Hub](https://hub.docker.com/repositories).

   Si ves el nuevo repositorio en esa lista, significa que GitHub Actions subió correctamente la imagen a Docker Hub.

## Resumen

En esta sección, aprendiste a configurar un flujo de trabajo de GitHub Actions para tu aplicación R.

Información relacionada:

- [Introducción a GitHub Actions](/guides/gha/)
- [GitHub Actions de Docker Build](/build/ci/github-actions/)
- [Sintaxis de flujo de trabajo para GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)

## Pasos siguientes

A continuación, aprende cómo probar y depurar localmente tus cargas de trabajo en Kubernetes antes de realizar el despliegue.

