4 Commits

Author SHA1 Message Date
ismailmasseran a3196b45eb DONE: fix error when pnpm dev because missing packages 2026-10-25 15:37:59 +08:00
ismailmasseran e7640a7a79 DONE: update cicd 2 2026-10-25 14:34:45 +08:00
ismailmasseran e7615d7497 DONE: update cicd 1 2026-10-25 14:30:31 +08:00
ismailmasseran 9161e3700c DONE: update cicd
Build Docker Image / build-frontend (push) Successful in 6s
2026-10-25 14:27:38 +08:00
2 changed files with 21 additions and 3 deletions
+18 -3
View File
@@ -10,6 +10,9 @@ on:
default: "latest"
type: string
env:
FRONTEND_IMAGE: git.koppkb.com/kopkb/my-kopkb-fe
jobs:
deploy:
runs-on: mykopkb-production
@@ -42,7 +45,6 @@ jobs:
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
IMAGE_TAG: ${{ inputs.image_tag }}
FRONTEND_IMAGE: git.koppkb.com/kopkb/my-kopkb-fe
run: |
set -euo pipefail
@@ -51,11 +53,25 @@ jobs:
fi
mkdir -p ~/.ssh
printf '%s\n' "$PROD_SSH_KEY" > ~/.ssh/id_ed25519
umask 077
# Gitea often stores a multiline key as one line. Prefer a base64
# secret (one line). A raw key that still contains BEGIN is accepted too.
if printf '%s' "$PROD_SSH_KEY" | grep -q -- '-----BEGIN'; then
printf '%b\n' "$PROD_SSH_KEY" | tr -d '\r' > ~/.ssh/id_ed25519
else
printf '%s' "$PROD_SSH_KEY" | tr -d '[:space:]' | base64 -d > ~/.ssh/id_ed25519
fi
chmod 600 ~/.ssh/id_ed25519
if ! ssh-keygen -y -f ~/.ssh/id_ed25519 >/dev/null; then
echo "ERROR: PROD_SSH_KEY is not a readable private key."
echo "On the runner, run: base64 -w0 ~/.ssh/mykopkb_prod"
echo "Put that single line in the PROD_SSH_KEY secret."
exit 1
fi
ssh-keyscan -H "$PROD_HOST" >> ~/.ssh/known_hosts
SSH=(ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes "${PROD_USER}@${PROD_HOST}")
IMAGE="${FRONTEND_IMAGE}:${IMAGE_TAG}"
"${SSH[@]}" "mkdir -p '${PROD_DEPLOY_DIR}'"
scp -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes \
@@ -67,7 +83,6 @@ jobs:
echo "${REGISTRY_PASSWORD}" | docker login git.koppkb.com \
-u "${REGISTRY_USERNAME}" --password-stdin
IMAGE="${FRONTEND_IMAGE}:${IMAGE_TAG}"
echo "Checking if image exists: ${IMAGE}"
docker manifest inspect "${IMAGE}" > /dev/null
echo "✓ ${IMAGE} found"
+3
View File
@@ -1,2 +1,5 @@
packages:
- .
allowBuilds:
esbuild: true