skills/FORGE-cicd-docker-deploy/SKILL.md
Build GitHub Actions CI/CD pipelines, Docker multi-stage builds, and deploy-verify patterns for VPS af-forge.
npx skillsauth add ariffazil/openclaw-workspace FORGE-cicd-docker-deployInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
DITEMPA BUKAN DIBERI — Forged, Not Given.
Build GitHub Actions CI/CD pipelines, Docker multi-stage builds, and deploy→verify patterns for VPS af-forge. Cover test → build → deploy → smoke-test → rollback lifecycle.
/opt/<organ>/app, systemd restart, health verifyforge_infra_guardian or hostinger-vpspostgres-schema-design| Floor | Application | |-------|-------------| | F1 AMANAH | Deploys are reversible — keep previous release, support rollback | | F2 TRUTH | CI must pass lint + typecheck + test before deploy — no skip flags | | F4 CLARITY | One Dockerfile per organ, one workflow per deploy target | | F11 AUDIT | Every deploy logged to VAULT999 with commit hash + image digest | | F12 INJECTION | Docker images scanned for CVEs before production push | | F13 SOVEREIGN | Production deploy after green tests is T2 ANNOUNCE; broken tests = 888_HOLD |
# .github/workflows/deploy.yml — canonical pattern
name: Deploy
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run lint && npm test
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: docker/build-push-action@v5
with:
push: true
tags: ghcr.io/ariffazil/${{ matrix.organ }}:${{ github.sha }}
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- run: |
ssh af-forge "
cd /opt/${{ matrix.organ }}/app && \
git pull && \
systemctl restart ${{ matrix.organ }} && \
sleep 3 && \
curl -sf http://localhost:${{ matrix.port }}/health
"
# Multi-stage Dockerfile pattern
FROM node:22-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:22-alpine AS production
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY --from=build /app/node_modules ./node_modules
HEALTHCHECK --interval=30s CMD node dist/health.js
USER node
CMD ["node", "dist/server.js"]
# Deploy → verify sequence
rsync -az --delete /root/<organ>/ /opt/<organ>/app/
systemctl restart <organ>
sleep 3
curl -sf http://localhost:<port>/health | jq .status
# Behavior smoke test: call one tool and verify expected output
latest tag only (must use commit SHA or date stamp)testing
OpenClaw edge agent bridge — operational triage, doctor, restart, and A2A bridge routing for the federation edge (Telegram surface). USE WHEN: "openclaw unhealthy", "gateway down", "edge bot not responding", "a2a bridge disconnected", "watchdog tripped", "openclaw doctor", "openclaw restart". NOT for token/security audit — use FORGE-telegram-audit.
tools
Generate images, videos, TTS, voice clone, and music via MiniMax MCP server. Use when user asks to "draw", "generate image", "create picture", "make a photo", "text to image", "image generation".
testing
Single load-bearing constitutional-judgment skill. Routes all F1–F13, verdict, hold, seal, scope, authority and floor-check calls through the live arif_judge surface. Replaces 7 overlapping predecessors (arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge).
development
MANDATORY LSP grounding gate BEFORE any code mutation on .ts, .py, .js, .tsx, .jsx files. Forces the agent to read real-time compiler diagnostics and structural project context before editing — eliminating blind guesses and anchoring every mutation in F2 (TRUTH). Routes through arifOS kernel (:8088) for centralized gate logic.