Skip to content

Commit a98487e

Browse files
committed
cache langfuse docker images in ci
1 parent 174884c commit a98487e

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,37 @@ jobs:
150150
curl -fsSL "https://raw.githubusercontent.com/langfuse/langfuse/${LANGFUSE_SERVER_SHA}/docker-compose.yml" \
151151
-o ./langfuse-server/docker-compose.yml
152152
echo "${LANGFUSE_SERVER_SHA}"
153+
- name: Resolve langfuse server image digests
154+
run: |
155+
docker compose -f ./langfuse-server/docker-compose.yml config --images \
156+
| tee ./langfuse-server/docker-images.txt
157+
158+
while read -r image; do
159+
docker manifest inspect "$image" \
160+
| jq -r --arg image "$image" '
161+
if .manifests then
162+
.manifests[]
163+
| select(.platform.os == "linux" and .platform.architecture == "amd64")
164+
| "\($image)@\(.digest)"
165+
else
166+
"\($image)@\(.config.digest // .Descriptor.digest // .digest)"
167+
end
168+
'
169+
done < ./langfuse-server/docker-images.txt \
170+
| tee ./langfuse-server/docker-image-digests.txt
171+
- name: Restore langfuse server image cache
172+
id: docker-image-cache
173+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
174+
with:
175+
path: ./langfuse-server/docker-image-cache
176+
key: langfuse-docker-${{ runner.os }}-${{ hashFiles('langfuse-server/docker-compose.yml', 'langfuse-server/docker-image-digests.txt') }}
177+
- name: Load cached langfuse server images
178+
if: ${{ steps.docker-image-cache.outputs.cache-hit == 'true' }}
179+
run: |
180+
shopt -s nullglob
181+
for image_tar in ./langfuse-server/docker-image-cache/*.tar; do
182+
docker load -i "$image_tar"
183+
done
153184
154185
- name: Run langfuse server
155186
run: |
@@ -167,6 +198,14 @@ jobs:
167198
LANGFUSE_ENABLE_EVENTS_TABLE_OBSERVATIONS=true \
168199
docker compose up -d
169200
echo "::endgroup::"
201+
- name: Save langfuse server images to cache
202+
if: ${{ steps.docker-image-cache.outputs.cache-hit != 'true' && matrix.shard-name == 'core' }}
203+
run: |
204+
mkdir -p ./langfuse-server/docker-image-cache
205+
while read -r image; do
206+
safe_name=$(echo "$image" | tr '/:.' '_')
207+
docker save -o "./langfuse-server/docker-image-cache/${safe_name}.tar" "$image"
208+
done < ./langfuse-server/docker-images.txt
170209
171210
- name: Health check for langfuse server
172211
run: |

0 commit comments

Comments
 (0)