From 7ff80e3a08625902524bae7c76744d2ef71f5f2d Mon Sep 17 00:00:00 2001 From: RaineAllDay Date: Wed, 18 Mar 2026 04:53:17 -0600 Subject: [PATCH] fixing deployment actions --- .gitea/workflows/SETUP.md | 2 +- .gitea/workflows/ci.yml | 22 +++++++--------------- .gitea/workflows/deploy.yml | 31 ++++++++++--------------------- 3 files changed, 18 insertions(+), 37 deletions(-) diff --git a/.gitea/workflows/SETUP.md b/.gitea/workflows/SETUP.md index 103d92d..0468434 100644 --- a/.gitea/workflows/SETUP.md +++ b/.gitea/workflows/SETUP.md @@ -14,7 +14,7 @@ If you don't have one yet: # Install and register ./gitea-runner register \ --instance https://git.etcprs.app \ - --token LSD3GDaXRaU9TUxtrlm8M3hOF72KFipIYchUpqda \ + --token \ --name "droplet-runner" \ --labels "ubuntu-latest" ``` diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index aae6778..6246c9d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -1,13 +1,13 @@ # .gitea/workflows/ci.yml -# Runs on every push and pull request. -# Checks syntax, imports, and that the build succeeds. +# Runs on every push and pull request (except main, which uses deploy.yml). +# Designed for a host-mode act_runner on Ubuntu with Node 20 already installed. name: CI on: push: branches-ignore: - - main # main is handled by deploy.yml + - main pull_request: jobs: @@ -17,33 +17,25 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v3 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' + - name: Verify Node.js + run: node --version && npm --version - name: Install dependencies run: npm ci - # ── Syntax check all server-side JS files ──────────────────────────── - name: JS syntax check run: | find src -name "*.js" | xargs -I{} node --check {} echo "✓ JS syntax OK" - # ── Svelte component check ──────────────────────────────────────────── - name: Svelte check - run: npx svelte-check --tsconfig ./jsconfig.json 2>&1 | tail -5 - continue-on-error: false + run: npx svelte-check 2>&1 | tail -10 - # ── Full Vite build (catches broken imports + SSR errors) ───────────── - name: Build run: npm run build env: - # Provide dummy env vars so the build doesn't fail on missing config DATABASE_URL: ./dummy.db RATE_LIMIT_PUBLISH: '5' RATE_LIMIT_READ: '100' diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 5b0e6dc..d3d3cee 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,11 +1,11 @@ # .gitea/workflows/deploy.yml # Triggered on push to main. -# Runs the full CI suite first, then deploys to the production droplet. +# Runs CI checks first, then deploys to production. # -# Required Gitea secrets (Settings → Secrets): -# DEPLOY_HOST — droplet IP or hostname (e.g. 192.168.1.1) +# Required Gitea secrets (Settings → Secrets → Actions): +# DEPLOY_HOST — droplet IP or hostname # DEPLOY_USER — SSH user (e.g. root) -# DEPLOY_SSH_KEY — private key contents (the output of: cat ~/.ssh/deploy_key) +# DEPLOY_SSH_KEY — private key (contents of ~/.ssh/deploy_key) # DEPLOY_PORT — SSH port (usually 22) name: Deploy @@ -23,13 +23,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v3 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' + - name: Verify Node.js + run: node --version && npm --version - name: Install dependencies run: npm ci @@ -40,7 +37,7 @@ jobs: echo "✓ JS syntax OK" - name: Svelte check - run: npx svelte-check --tsconfig ./jsconfig.json 2>&1 | tail -5 + run: npx svelte-check 2>&1 | tail -10 - name: Build run: npm run build @@ -54,7 +51,7 @@ jobs: deploy: name: Deploy to Production runs-on: ubuntu-latest - needs: build # only runs if build job passes + needs: build steps: - name: Deploy via SSH @@ -66,24 +63,16 @@ jobs: port: ${{ secrets.DEPLOY_PORT }} script: | set -e - APP_DIR=/opt/etc-prs/app APP_USER=prs - echo "▸ Pulling latest code…" - cd "$APP_DIR" - git pull - + cd "$APP_DIR" && git pull echo "▸ Installing dependencies…" npm install --quiet - echo "▸ Building…" npm run build - echo "▸ Fixing ownership…" chown -R "${APP_USER}:${APP_USER}" "$APP_DIR" - echo "▸ Reloading PM2…" pm2 reload etc-prs - echo "✓ Deploy complete"