diff --git a/.gitea/workflows/playwright-base-image.yml b/.gitea/workflows/playwright-base-image.yml new file mode 100644 index 000000000..da7ced864 --- /dev/null +++ b/.gitea/workflows/playwright-base-image.yml @@ -0,0 +1,59 @@ +name: Playwright Base Image Build + +on: + workflow_dispatch: + inputs: + reason: + description: "触发原因" + required: false + default: "构建 playwright 基础镜像" + +jobs: + build-playwright: + name: Build Playwright Base Image + runs-on: runtime-builder + timeout-minutes: 30 + steps: + - name: Docker login to Gitea Registry + shell: sh + env: + GITEA_REGISTRY_USER: xiaoxia + GITEA_REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} + run: | + set -eu + for i in 1 2 3; do + echo "=== Docker login attempt $i/3 ===" + if printf '%s' "${GITEA_REGISTRY_TOKEN}" | docker login git.xiaoxiajianji.com -u "${GITEA_REGISTRY_USER}" --password-stdin; then + echo "Docker login successful" + break + fi + echo "Docker login failed (attempt $i/3), retrying in 5s..." + sleep 5 + [ $i -eq 3 ] && exit 1 + done + + - name: Pull, retag and push Playwright image + shell: sh + run: | + set -eu + OFFICIAL_IMAGE="mcr.microsoft.com/playwright:v1.45.0-jammy" + GITEA_IMAGE="git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy" + + echo "=== Pulling official Playwright image ===" + docker pull "${OFFICIAL_IMAGE}" + + echo "=== Tagging ===" + docker tag "${OFFICIAL_IMAGE}" "${GITEA_IMAGE}" + + echo "=== Pushing to Gitea Registry ===" + docker push "${GITEA_IMAGE}" + + echo "Done: ${GITEA_IMAGE}" + + - name: Cleanup + if: always() + shell: sh + run: | + docker rmi "mcr.microsoft.com/playwright:v1.45.0-jammy" 2>/dev/null || true + docker rmi "git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy" 2>/dev/null || true + echo "Cleanup done"