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)development
Federation-wide gold (XAUUSD) trading capability. Python stack, OANDA broker, backtesting, macro signals, RSI strategy. Every organ has a role.
development
Capital claim state management — tracks claim lifecycle across WEALTH organ.
development
Archived constitutional warga placeholder retained only for audit provenance. Do not use for active work; use the live arifOS governance and constitutional skills instead.
testing
Warga (citizen) agent skills for AAA federation members. See subdirectories for specialized warga skills.