✓
Push
passedCommit pushed to main, triggering the workflow.
✓
Lint
passedESLint checks code style and catches common errors.
✓
Test
10 passedJest runs the calculator's unit tests under jsdom.
✓
Build image
passedDocker multi-stage build produces a minimal Nginx image.
✓
Push to registry
passedImage tagged latest and commit SHA, pushed to Docker Hub.
Deploy
liveStatic files copied to /public_html/calculator/ via FTP.