一键导入
deployment
CI/CD pipeline, Docker multi-stage build, GitHub Actions, and Cloud Run deployment for the Anachak platform.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
CI/CD pipeline, Docker multi-stage build, GitHub Actions, and Cloud Run deployment for the Anachak platform.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Rust gRPC backend patterns, folder structure, module anatomy, and infrastructure wiring for the Anachak multi-tenant SaaS platform.
TanStack Router + React frontend patterns, ConnectRPC gRPC-Web client, Zustand stores, Tailwind v4, i18n, and AppearancePanel theming for the Anachak platform.
Fish shell configuration, aliases, gRPC debugging, PostgreSQL CLI helpers, and dev workflow shortcuts for the Anachak platform.
基于 SOC 职业分类
| name | deployment |
| description | CI/CD pipeline, Docker multi-stage build, GitHub Actions, and Cloud Run deployment for the Anachak platform. |
Covers the full CI/CD pipeline from local build to production deployment.
File: .github/workflows/ci.yml
| Job | Trigger | Purpose |
|---|---|---|
| check | push/PR to main | cargo fmt --check → clippy → build --release → test |
| test | after check | Start PostgreSQL service → build server → run Ruby integration tests |
| docker | after check | Build Docker image → push to GHCR (on push to main) |
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo build --release
cargo test --release
postgres:16-alpine service container.env with CI secretsruby scripts/test_all.rbghcr.io/<repo> with tags: latest, main, <sha># Stage 1: Builder
FROM rust:1.88-slim AS builder
# Install protobuf + SSL + pkg-config
# Copy manifests for dep caching
# Copy source + build --release
# Stage 2: Runtime
FROM debian:bookworm-slim
# Install ca-certificates + curl
# Non-root user (app)
# Copy binary from builder
# EXPOSE 50050 9090 9091
# CMD ["server"]
Cargo.toml/Cargo.lock first, dummy main.rsDATABASE_URL, JWT_SECRET, JWT_ACCESS_EXPIRY_SECS, JWT_REFRESH_EXPIRY_SECS,
GRPC_HOST, GRPC_PORT, RESEND_API_KEY, EMAIL_FROM, EMAIL_FROM_NAME,
FRONTEND_URL, CORS_ORIGINS, METRICS_PORT, WS_PORT,
BAKONG_EMAIL, BAKONG_TOKEN, BAKONG_ACCOUNT_ID, BAKONG_MERCHANT_NAME,
BAKONG_MERCHANT_CITY, KHR_EXCHANGE_RATE, SUPER_ADMIN_EMAIL,
SUPER_ADMIN_USERNAME, SUPER_ADMIN_PASSWORD
PLASGATE_PRIVATE_KEY, PLASGATE_SECRET_KEY, TELEGRAM_BOT_TOKEN,
TELEGRAM_GATEWAY_TOKEN, GOOGLE_CLIENT_ID, ALERT_CHAT_ID, REDIS_URL
VITE_API_URL=http://localhost:50050
VITE_GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com
gcloud run deploy anachak \
--image ghcr.io/khemapos/anachak_rust:latest \
--region asia-southeast1 \
--platform managed \
--port 50050 \
--allow-unauthenticated \
--set-secrets "DATABASE_URL=DATABASE_URL:latest,JWT_SECRET=JWT_SECRET:latest,..."
Kustomize manifests in k8s/ for self-hosted Kubernetes deployments.
cc # cargo check
ct # cargo test
ship "feat: X" # git add + commit + push → triggers CI