# Probar antes de enviar con GitHub Actions


En algunos casos, es posible que quieras validar que la imagen funciona según lo esperado
antes de enviarla. El siguiente flujo de trabajo implementa varios pasos para lograr
esto:

1. Compilar y exportar la imagen a Docker
2. Probar la imagen
3. Compilar para múltiples plataformas y enviar la imagen

```yaml
name: ci

on:
  push:

env:
  TEST_TAG: user/app:test
  LATEST_TAG: user/app:latest

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Iniciar sesión en Docker Hub
        uses: docker/login-action@v4
        with:
          username: ${{ vars.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Configurar QEMU
        uses: docker/setup-qemu-action@v4

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

      - name: Compilar y exportar a Docker
        uses: docker/build-push-action@v7
        with:
          load: true
          tags: ${{ env.TEST_TAG }}

      - name: Probar
        run: |
          docker run --rm ${{ env.TEST_TAG }}

      - name: Compilar y enviar
        uses: docker/build-push-action@v7
        with:
          platforms: linux/amd64,linux/arm64
          push: true
          tags: ${{ env.LATEST_TAG }}
```

> [!NOTE]
>
> La imagen `linux/amd64` solo se compila una vez en este flujo de trabajo. La imagen se
> compila una vez, y los siguientes pasos utilizan la caché interna del primer
> paso `Compilar y exportar a Docker`. El segundo paso `Compilar y enviar` solo compila
> `linux/arm64`.

