fixed gitea ci
Some checks failed
CI/CD Pipeline / Lint & Type Check (push) Has been cancelled
CI/CD Pipeline / Deploy to NODE Cloud (push) Has been cancelled

This commit is contained in:
Ali Taghavi
2026-05-10 09:19:25 +03:30
parent a9280dbe36
commit 62ad4f8496

View File

@@ -5,113 +5,49 @@ on:
branches: [main]
jobs:
# ── Lint & Type Check ─────────────────────────────────────────────────────────
lint-typecheck:
name: Lint & Type Check
runs-on: ubuntu-latest
runs-on: nodecloud-runner
container:
image: node:20-bullseye
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 20
uses: actions/setup-node@v4
with:
node-version: '20'
token: ${{ github.token }}
repository: ${{ github.repository }}
- name: Enable pnpm via corepack
run: corepack enable && corepack prepare pnpm@9 --activate
- name: Get pnpm store path
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT
- name: Cache pnpm store
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: pnpm-${{ runner.os }}-
- name: Enable pnpm
run: corepack enable && corepack prepare pnpm@latest --activate
- name: Install dependencies
run: |
pnpm config set registry https://package-mirror.liara.ir/repository/npm/
pnpm install --frozen-lockfile --network-concurrency 1
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Lint
run: pnpm lint
- name: Type check
run: pnpm exec tsc --noEmit
run: pnpm typecheck
# ── Deploy ────────────────────────────────────────────────────────────────────
deploy:
name: Deploy to NODE Cloud
runs-on: ubuntu-latest
runs-on: nodecloud-runner
needs: lint-typecheck
if: success()
steps:
- name: Setup SSH key
env:
SSH_KEY: ${{ secrets.SERVER_SSH_KEY }}
- name: Deploy via SSH
run: |
mkdir -p ~/.ssh
printf '%s\n' "$SSH_KEY" > ~/.ssh/deploy_key
echo "${{ secrets.SERVER_SSH_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
echo "SSH key written"
- name: Deploy via SSH
env:
SSH_HOST: ${{ secrets.SERVER_HOST }}
SSH_USER: ${{ secrets.SERVER_USER }}
run: |
ssh -i ~/.ssh/deploy_key \
-o StrictHostKeyChecking=no \
-o ConnectTimeout=30 \
-o ServerAliveInterval=60 \
"$SSH_USER@$SSH_HOST" << 'DEPLOY'
set -e
APP_DIR="/srv/nodecloud/apps/biztaghavi"
echo "==> Checking app directory..."
if [ ! -d "$APP_DIR/.git" ]; then
echo "==> First deploy — cloning repository..."
mkdir -p "$APP_DIR"
git clone https://git.nodecloud.ir/biztaghavi/biztaghavisite.git "$APP_DIR"
fi
cd "$APP_DIR"
echo "==> Pulling latest code..."
git pull origin main
echo "==> Checking .env file..."
if [ ! -f .env ]; then
cp .env.example .env
echo "⚠️ Created .env from .env.example — fill in real values and redeploy!"
exit 1
fi
echo "==> Ensuring nodecloud-net network exists..."
docker network inspect nodecloud-net >/dev/null 2>&1 || \
docker network create nodecloud-net
echo "==> Building Docker image..."
docker compose build
echo "==> Starting/updating services..."
docker compose up -d --remove-orphans
echo "==> Pruning unused images..."
docker image prune -f
echo "✅ Deployed $(git rev-parse --short HEAD)"
DEPLOY
- name: Verify deployment
env:
SSH_HOST: ${{ secrets.SERVER_HOST }}
SSH_USER: ${{ secrets.SERVER_USER }}
run: |
ssh -i ~/.ssh/deploy_key \
-o StrictHostKeyChecking=no \
"$SSH_USER@$SSH_HOST" \
'curl -sf --retry 5 --retry-delay 3 http://127.0.0.1:3009/ -o /dev/null && echo "✅ Health check passed" || echo "⚠️ Health check failed (app may still be starting)"'
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} \
"cd /srv/nodecloud/apps/biztaghavisite && \
git pull && \
docker compose build --no-cache && \
docker compose up -d --force-recreate && \
echo '✅ Deploy done'"