Test application for CI/CD pipelines using GitHub Actions for continuous integration and Argo CD for Kubernetes deployment on AKS.
apps/frontend: Node.js React/Vite blog frontend.services/api: Java Spring Boot REST API.infra/k8s: Kubernetes manifests for AKS.infra/argocd: Argo CDApplicationmanifest..github/workflows/ci.yml: CI pipeline with tests, builds, container image build, and open source vulnerability scanning.
Prerequisites:
- Node.js 20+
- Java 21+
- Docker and Docker Compose
Start PostgreSQL:
docker compose up -d postgresRun the API:
cd services/api
mvn spring-boot:runRun the frontend:
cd apps/frontend
npm install
npm run devFrontend: http://localhost:5173
API: http://localhost:8080/api/posts
The GitHub Actions workflow uses open source tools:
- Trivy for filesystem, dependency, configuration, and container image vulnerability scanning.
- OWASP Dependency-Check for Java dependency CVEs.
- Semgrep for static analysis.
- npm audit for frontend dependency advisories.
- Push container images to GitHub Container Registry from CI.
- Update
infra/k8s/frontend/deployment.yamlandinfra/k8s/api/deployment.yamlimage names for your GitHub organization/repository. - Apply the Argo CD application:
kubectl apply -n argocd -f infra/argocd/blog-platform.yamlThe manifests deploy into the blog-platform namespace. For production, replace the sample PostgreSQL password with a secret managed by Azure Key Vault, External Secrets Operator, or your preferred secret manager.