Skip to content

feat: add Soroban contract CI pipeline and Kubernetes Helm chart (#917, #918)#970

Merged
Haroldwonder merged 1 commit into
Haroldwonder:mainfrom
WhitesmokeX:feat/ci-and-helm-chart
Jun 29, 2026
Merged

feat: add Soroban contract CI pipeline and Kubernetes Helm chart (#917, #918)#970
Haroldwonder merged 1 commit into
Haroldwonder:mainfrom
WhitesmokeX:feat/ci-and-helm-chart

Conversation

@WhitesmokeX

@WhitesmokeX WhitesmokeX commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #917 and #918.

#917 — Soroban Contract CI

Rewrites .github/workflows/contract-ci.yml with all required steps:

  • cargo fmt --check — enforces consistent formatting
  • cargo clippy -- -D warnings — zero lint warnings allowed
  • cargo test + cargo test --features legacy-tests
  • cargo build --target wasm32-unknown-unknown --release — WASM artifact uploaded
  • All jobs have dedicated cargo registry + target cache keyed on Cargo.lock
  • Triggers on push to main and PR targeting main (path-filtered to contract files)
  • contract-ci gate job fails the workflow if any step above fails — set as required status check to block merges

#918 — Kubernetes Helm Chart

Adds charts/swiftremit/ — a production-grade Helm chart for all three services.

Templates:

Template Resources
api-deployment.yaml Deployment (api)
backend-deployment.yaml Deployment (backend)
frontend-deployment.yaml Deployment (frontend)
services.yaml ClusterIP Services × 3
configmaps.yaml ConfigMaps × 3 (non-secret env vars)
secrets.yaml Secrets × 3 (stringData, injected at deploy time)
hpa.yaml HorizontalPodAutoscaler for api + backend (+ frontend when enabled)
ingress.yaml Optional nginx Ingress

Values files:

  • values.yaml — base defaults
  • values.dev.yaml — single replicas, testnet, in-cluster postgres
  • values.staging.yaml — 2 replicas, testnet, staging cert-manager issuer
  • values.production.yaml — 3+ replicas, mainnet, aggressive HPA, prod TLS

Deploy:

helm install swiftremit ./charts/swiftremit -f charts/swiftremit/values.production.yaml \
  --set api.secret.DATABASE_URL="$DATABASE_URL" \
  --set backend.secret.DATABASE_URL="$DATABASE_URL" \
  --set backend.secret.CONTRACT_ID="$CONTRACT_ID" \
  --set backend.secret.ADMIN_SECRET_KEY="$ADMIN_SECRET_KEY"

Helm lint CI: added helm-lint job to ci.yml — lints against all four values files, wired into the CI gate.

Testing

  • helm lint charts/swiftremit — ✅ 0 failures across all four values files

closes #917
closes #918

…ldwonder#918)

- Rewrite contract-ci.yml: fmt, clippy, test, wasm build, cargo cache, gate job
- Add charts/swiftremit Helm chart with Deployment/Service/ConfigMap/Secret/HPA
- Add values files for dev, staging, production environments
- Add helm-lint job to ci.yml wired into CI gate
@vercel

vercel Bot commented Jun 27, 2026

Copy link
Copy Markdown

@WhitesmokeX is attempting to deploy a commit to the Harold's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 27, 2026

Copy link
Copy Markdown

@WhitesmokeX Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Haroldwonder Haroldwonder merged commit 3616dda into Haroldwonder:main Jun 29, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Kubernetes Helm chart for SwiftRemit services Add CI pipeline for Soroban contract build and test

2 participants