Skip to content

Commit 655d1f6

Browse files
authored
Merge pull request #368 from crazy-max/share-image
Share built image between jobs
2 parents 18fa566 + 6f4938a commit 655d1f6

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ___
3636
* [GitHub cache](docs/advanced/cache.md#github-cache)
3737
* [Local registry](docs/advanced/local-registry.md)
3838
* [Export image to Docker](docs/advanced/export-docker.md)
39+
* [Share built image between jobs](docs/advanced/share-image-jobs.md)
3940
* [Handle tags and labels](docs/advanced/tags-labels.md)
4041
* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
4142
* [Customizing](#customizing)
@@ -171,6 +172,7 @@ jobs:
171172
* [GitHub cache](docs/advanced/cache.md#github-cache)
172173
* [Local registry](docs/advanced/local-registry.md)
173174
* [Export image to Docker](docs/advanced/export-docker.md)
175+
* [Share built image between jobs](docs/advanced/share-image-jobs.md)
174176
* [Handle tags and labels](docs/advanced/tags-labels.md)
175177
* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
176178

docs/advanced/share-image-jobs.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Share built image between jobs
2+
3+
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)).
4+
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)
5+
using the [actions/upload-artifact](https://github.com/actions/upload-artifact) and [actions/download-artifact](https://github.com/actions/download-artifact)
6+
actions:
7+
8+
```yaml
9+
name: ci
10+
11+
on:
12+
push:
13+
branches:
14+
- 'master'
15+
16+
jobs:
17+
build:
18+
runs-on: ubuntu-latest
19+
steps:
20+
-
21+
name: Checkout
22+
uses: actions/checkout@v2
23+
-
24+
name: Set up Docker Buildx
25+
uses: docker/setup-buildx-action@v1
26+
-
27+
name: Build and export
28+
uses: docker/build-push-action@v2
29+
with:
30+
context: .
31+
tags: myimage:latest
32+
outputs: type=docker,dest=/tmp/myimage.tar
33+
-
34+
name: Upload artifact
35+
uses: actions/upload-artifact@v2
36+
with:
37+
name: myimage
38+
path: /tmp/myimage.tar
39+
40+
use:
41+
runs-on: ubuntu-latest
42+
needs: build
43+
steps:
44+
-
45+
name: Set up Docker Buildx
46+
uses: docker/setup-buildx-action@v1
47+
-
48+
name: Download artifact
49+
uses: actions/download-artifact@v2
50+
with:
51+
name: myimage
52+
path: /tmp
53+
-
54+
name: Load image
55+
run: |
56+
docker load --input /tmp/myimage.tar
57+
docker image ls -a
58+
```

0 commit comments

Comments
 (0)