# Compartir una imagen compilada entre trabajos con GitHub Actions


Dado que cada trabajo (job) está aislado en su propio runner, no puedes utilizar tu imagen compilada
entre trabajos, a menos que utilices [runners autohospedados (self-hosted runners)](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners)
o [Docker Build Cloud](/build-cloud).
Sin embargo, puedes [pasar datos entre trabajos](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts#passing-data-between-jobs-in-a-workflow)
en un flujo de trabajo utilizando las acciones [actions/upload-artifact](https://github.com/actions/upload-artifact)
y [actions/download-artifact](https://github.com/actions/download-artifact):

```yaml
name: ci

on:
  push:

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

      - name: Compilar y exportar
        uses: docker/build-push-action@v7
        with:
          tags: myimage:latest
          outputs: type=docker,dest=${{ runner.temp }}/myimage.tar

      - name: Subir artefacto
        uses: actions/upload-artifact@v4
        with:
          name: myimage
          path: ${{ runner.temp }}/myimage.tar

  use:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Descargar artefacto
        uses: actions/download-artifact@v4
        with:
          name: myimage
          path: ${{ runner.temp }}

      - name: Cargar imagen
        run: |
          docker load --input ${{ runner.temp }}/myimage.tar
          docker image ls -a
```

