1414env :
1515 DOCKER_NAMESPACE : matrixdotorg
1616 DOCKER_HUB_USER : dendritegithub
17- GHCR_NAMESPACE : matrix-org
17+ GHCR_NAMESPACE : element-hq
1818 PLATFORMS : linux/amd64,linux/arm64,linux/arm/v7
1919
2020jobs :
@@ -48,13 +48,27 @@ jobs:
4848 username : ${{ github.repository_owner }}
4949 password : ${{ secrets.GITHUB_TOKEN }}
5050
51+ # Build until the "build" stage, this then can be used by other steps.
52+ - name : Build "build" image
53+ if : github.ref_name == 'main' || github.event_name == 'release'
54+ id : docker_build_cache
55+ uses : docker/build-push-action@v6
56+ with :
57+ target : build
58+ cache-from : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache
59+ cache-to : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache,mode=max
60+ context : .
61+ platforms : ${{ env.PLATFORMS }}
62+ push : true
63+ tags : |
64+ ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:binaries
65+
5166 - name : Build main monolith image
5267 if : github.ref_name == 'main'
5368 id : docker_build_monolith
54- uses : docker/build-push-action@v3
69+ uses : docker/build-push-action@v6
5570 with :
5671 cache-from : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache
57- cache-to : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache,mode=max
5872 context : .
5973 platforms : ${{ env.PLATFORMS }}
6074 push : true
6579 - name : Build release monolith image
6680 if : github.event_name == 'release' # Only for GitHub releases
6781 id : docker_build_monolith_release
68- uses : docker/build-push-action@v3
82+ uses : docker/build-push-action@v6
6983 with :
70- cache-from : type=gha
71- cache-to : type=gha,mode=max
7284 context : .
7385 platforms : ${{ env.PLATFORMS }}
7486 push : true
@@ -86,13 +98,14 @@ jobs:
8698 output : " trivy-results.sarif"
8799
88100 - name : Upload Trivy scan results to GitHub Security tab
89- uses : github/codeql-action/upload-sarif@v2
101+ uses : github/codeql-action/upload-sarif@v3
90102 with :
91103 sarif_file : " trivy-results.sarif"
92104
93105 demo-pinecone :
94106 name : Pinecone demo image
95107 runs-on : ubuntu-latest
108+ needs : monolith
96109 permissions :
97110 contents : read
98111 packages : write
@@ -122,10 +135,9 @@ jobs:
122135 - name : Build main Pinecone demo image
123136 if : github.ref_name == 'main'
124137 id : docker_build_demo_pinecone
125- uses : docker/build-push-action@v3
138+ uses : docker/build-push-action@v6
126139 with :
127- cache-from : type=gha
128- cache-to : type=gha,mode=max
140+ cache-from : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache
129141 context : .
130142 file : ./build/docker/Dockerfile.demo-pinecone
131143 platforms : ${{ env.PLATFORMS }}
@@ -137,23 +149,23 @@ jobs:
137149 - name : Build release Pinecone demo image
138150 if : github.event_name == 'release' # Only for GitHub releases
139151 id : docker_build_demo_pinecone_release
140- uses : docker/build-push-action@v3
152+ uses : docker/build-push-action@v6
141153 with :
142- cache-from : type=gha
143- cache-to : type=gha,mode=max
154+ cache-from : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache
144155 context : .
145156 file : ./build/docker/Dockerfile.demo-pinecone
146157 platforms : ${{ env.PLATFORMS }}
147158 push : true
148159 tags : |
149- ${{ env.DOCKER_NAMESPACE }}/dendrite-demo-yggdrasil :latest
150- ${{ env.DOCKER_NAMESPACE }}/dendrite-demo-yggdrasil :${{ env.RELEASE_VERSION }}
151- ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-demo-yggdrasil :latest
152- ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-demo-yggdrasil :${{ env.RELEASE_VERSION }}
160+ ${{ env.DOCKER_NAMESPACE }}/dendrite-demo-pinecone :latest
161+ ${{ env.DOCKER_NAMESPACE }}/dendrite-demo-pinecone :${{ env.RELEASE_VERSION }}
162+ ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-demo-pinecone :latest
163+ ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-demo-pinecone :${{ env.RELEASE_VERSION }}
153164
154165 demo-yggdrasil :
155166 name : Yggdrasil demo image
156167 runs-on : ubuntu-latest
168+ needs : monolith
157169 permissions :
158170 contents : read
159171 packages : write
@@ -183,10 +195,9 @@ jobs:
183195 - name : Build main Yggdrasil demo image
184196 if : github.ref_name == 'main'
185197 id : docker_build_demo_yggdrasil
186- uses : docker/build-push-action@v3
198+ uses : docker/build-push-action@v6
187199 with :
188- cache-from : type=gha
189- cache-to : type=gha,mode=max
200+ cache-from : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache
190201 context : .
191202 file : ./build/docker/Dockerfile.demo-yggdrasil
192203 platforms : ${{ env.PLATFORMS }}
@@ -198,10 +209,9 @@ jobs:
198209 - name : Build release Yggdrasil demo image
199210 if : github.event_name == 'release' # Only for GitHub releases
200211 id : docker_build_demo_yggdrasil_release
201- uses : docker/build-push-action@v3
212+ uses : docker/build-push-action@v6
202213 with :
203- cache-from : type=gha
204- cache-to : type=gha,mode=max
214+ cache-from : type=registry,ref=ghcr.io/${{ env.GHCR_NAMESPACE }}/dendrite-monolith:buildcache
205215 context : .
206216 file : ./build/docker/Dockerfile.demo-yggdrasil
207217 platforms : ${{ env.PLATFORMS }}
0 commit comments