Merge pull request #368 from crazy-max/share-image
Share built image between jobs
This commit is contained in:
		
						commit
						655d1f6b37
					
				@ -36,6 +36,7 @@ ___
 | 
				
			|||||||
    * [GitHub cache](docs/advanced/cache.md#github-cache)
 | 
					    * [GitHub cache](docs/advanced/cache.md#github-cache)
 | 
				
			||||||
  * [Local registry](docs/advanced/local-registry.md)
 | 
					  * [Local registry](docs/advanced/local-registry.md)
 | 
				
			||||||
  * [Export image to Docker](docs/advanced/export-docker.md)
 | 
					  * [Export image to Docker](docs/advanced/export-docker.md)
 | 
				
			||||||
 | 
					  * [Share built image between jobs](docs/advanced/share-image-jobs.md)
 | 
				
			||||||
  * [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
					  * [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
				
			||||||
  * [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
					  * [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
				
			||||||
* [Customizing](#customizing)
 | 
					* [Customizing](#customizing)
 | 
				
			||||||
@ -171,6 +172,7 @@ jobs:
 | 
				
			|||||||
  * [GitHub cache](docs/advanced/cache.md#github-cache)
 | 
					  * [GitHub cache](docs/advanced/cache.md#github-cache)
 | 
				
			||||||
* [Local registry](docs/advanced/local-registry.md)
 | 
					* [Local registry](docs/advanced/local-registry.md)
 | 
				
			||||||
* [Export image to Docker](docs/advanced/export-docker.md)
 | 
					* [Export image to Docker](docs/advanced/export-docker.md)
 | 
				
			||||||
 | 
					* [Share built image between jobs](docs/advanced/share-image-jobs.md)
 | 
				
			||||||
* [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
					* [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
				
			||||||
* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
					* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										58
									
								
								docs/advanced/share-image-jobs.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/advanced/share-image-jobs.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					# Share built image between jobs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As each job is isolated in its own runner you cannot use your built image between jobs (except for [self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners)).
 | 
				
			||||||
 | 
					However, you can [pass data between jobs in a workflow](https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts#passing-data-between-jobs-in-a-workflow)
 | 
				
			||||||
 | 
					using the [actions/upload-artifact](https://github.com/actions/upload-artifact) and [actions/download-artifact](https://github.com/actions/download-artifact)
 | 
				
			||||||
 | 
					actions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					name: ci
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches:
 | 
				
			||||||
 | 
					      - 'master'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Set up Docker Buildx
 | 
				
			||||||
 | 
					        uses: docker/setup-buildx-action@v1
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Build and export
 | 
				
			||||||
 | 
					        uses: docker/build-push-action@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          context: .
 | 
				
			||||||
 | 
					          tags: myimage:latest
 | 
				
			||||||
 | 
					          outputs: type=docker,dest=/tmp/myimage.tar
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Upload artifact
 | 
				
			||||||
 | 
					        uses: actions/upload-artifact@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          name: myimage
 | 
				
			||||||
 | 
					          path: /tmp/myimage.tar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  use:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    needs: build
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Set up Docker Buildx
 | 
				
			||||||
 | 
					        uses: docker/setup-buildx-action@v1
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Download artifact
 | 
				
			||||||
 | 
					        uses: actions/download-artifact@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          name: myimage
 | 
				
			||||||
 | 
					          path: /tmp
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Load image
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          docker load --input /tmp/myimage.tar
 | 
				
			||||||
 | 
					          docker image ls -a
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user