Compartir comentarios
Las respuestas se generan en base a la documentación.

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

Las comprobaciones de compilación (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.

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.

target "build" {
  dockerfile = "Dockerfile"
  args = {
    FOO = "bar"
  }
}
target "validate-build" {
  inherits = ["build"]
  call = "check"
}
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:

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