ci: prefetch knowledge content for dashboard image

This commit is contained in:
Haitao Pan 2025-12-22 22:49:14 +08:00
parent 194c9bb255
commit e25744e248

View File

@ -104,6 +104,27 @@ jobs:
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
# -------------------------------------------------------------
# Prepare knowledge content for Docker build (avoid git clone in Dockerfile)
# -------------------------------------------------------------
- name: Checkout knowledge content
uses: actions/checkout@v4
with:
repository: Cloud-Neutral-Workshop/knowledge
path: .tmp/knowledge
token: ${{ secrets.KNOWLEDGE_REPO_TOKEN || github.token }}
- name: Sync knowledge content into build context
run: |
set -euo pipefail
rm -rf src/content/blog/*
cp -R .tmp/knowledge/content/* src/content/blog/
- name: Create CI Dockerfile without knowledge clone
run: |
set -euo pipefail
perl -0777 -pe 's#RUN git clone https://github.com/Cloud-Neutral-Workshop/knowledge.git /tmp/knowledge\\\n && rm -rf src/content/blog/\\*\\\n && cp -R /tmp/knowledge/content/\\* src/content/blog/\\\n && rm -rf /tmp/knowledge#RUN echo "knowledge content provided by CI"#' Dockerfile > Dockerfile.ci
# -------------------------------------------------------------
# Build service image
# -------------------------------------------------------------
@ -112,7 +133,7 @@ jobs:
uses: docker/build-push-action@v6
with:
context: ${{ matrix.service.workdir }}
file: ${{ matrix.service.dockerfile }}
file: ${{ matrix.service.dockerfile == 'Dockerfile' && 'Dockerfile.ci' || matrix.service.dockerfile }}
platforms: linux/amd64,linux/arm64
push: ${{ env.PUSH_IMAGES == 'true' || env.PUSH_IMAGES == true }}
tags: ${{ steps.meta.outputs.tags }}