Skip to content

About

hello-cicd

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

Repository files navigation

Hello CI/CD — React + .NET, GitHub Actions, Docker, AWS

A tiny Todo app built for learning CI/CD. The app is simple on purpose: the point is the pipeline around it, which is the same pattern real companies use.

 feature branch ──push──▶ Pull Request ──────────────▶ merge to main
                              │                              │
                         ci.yml (every commit)          release.yml
                         ├ Test .NET API                ├ ci.yml again
                         ├ Lint + build React           ├ publish Docker images → ghcr.io
                         └ Docker builds (api, web)     └ deploy → AWS Lambda + S3
                              │
                     branch protection: no merge unless all green

Lessons (do them in order)

# Lesson You'll learn
1 Git & GitHub Flow branches, commits, PRs, pushing this repo
2 GitHub Actions basics workflows, triggers, jobs, steps, secrets, logs
3 Checks & branch protection checks on every commit, blocking bad merges
4 Docker images Dockerfiles, compose, publishing images on merge
5 Deploy to AWS Lambda, S3, IAM, automatic deploys
6 Use it on any project checklist + templates for your own projects

What's in the repo

Path What it is
HelloCicd.sln Solution: open in Visual Studio / Rider
api/ .NET 8 minimal API (runs locally, in Docker, and in AWS Lambda)
api.Tests/ xUnit tests: if they fail, nothing merges or deploys
web/ React app (Vite)
docker-compose.yml Run the whole app in containers
.github/workflows/ci.yml Checks for every PR commit
.github/workflows/release.yml Images + deploy on merge to main
.github/dependabot.yml Weekly dependency-update PRs
aws/ IAM / S3 policies to paste in the AWS console

Run it locally

Backend: open HelloCicd.sln in Visual Studio and press F5, or run:

dotnet run --project api          # http://localhost:5080/api/health

Frontend (second terminal):

cd web
npm install
npm run dev                       # http://localhost:5173

Tests: dotnet test HelloCicd.sln

Everything in Docker: docker compose up --build → web http://localhost:3000, API http://localhost:8080

About

hello-cicd

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages