# Validación de la configuración de compilación con GitHub Actions


Las [comprobaciones de compilación (build checks)](/build/checks/) te permiten validar tu configuración de `docker build` sin tener que ejecutar realmente la compilación.

## Ejecutar comprobaciones con `docker/build-push-action`

Para ejecutar las comprobaciones de compilación en un flujo de trabajo de GitHub Actions con la acción `build-push-action`, establece el parámetro de entrada `call` en `check`. Con esta opción configurada, el flujo de trabajo fallará si se detecta alguna advertencia de comprobación para la configuración de tu compilación.

```yaml
name: ci

on:
  push:

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

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

      - name: Validar la configuración de compilación
        uses: docker/build-push-action@v7
        with:
          call: check

      - name: Compilar y enviar
        uses: docker/build-push-action@v7
        with:
          push: true
          tags: user/app:latest
```

## Ejecutar comprobaciones con `docker/bake-action`

Si utilizas Bake y `docker/bake-action` para ejecutar tus compilaciones, no necesitas especificar ninguna entrada especial en la configuración del flujo de trabajo de GitHub Actions. En su lugar, define un objetivo (target) de Bake que llame al método `check` e invoca ese objetivo en tu CI.

```hcl
target "build" {
  dockerfile = "Dockerfile"
  args = {
    FOO = "bar"
  }
}
target "validate-build" {
  inherits = ["build"]
  call = "check"
}
```

```yaml
name: ci

on:
  push:

env:
  IMAGE_NAME: user/app

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 Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Validar la configuración de compilación
        uses: docker/bake-action@v7
        with:
          targets: validate-build

      - name: Compilar
        uses: docker/bake-action@v7
        with:
          targets: build
          push: true
```

### Uso de la entrada `call` directamente

También puedes establecer el método de compilación con la entrada `call`, lo cual equivale a utilizar la bandera `--call` con `docker buildx bake`.

Por ejemplo, para ejecutar una comprobación sin definir `call` en tu archivo Bake:

```yaml
name: ci

on:
  push:

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Configurar Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Validar la configuración de compilación
        uses: docker/bake-action@v7
        with:
          targets: build
          call: check
```

