No description
  • JavaScript 39.9%
  • CSS 35.2%
  • HTML 12.8%
  • Dockerfile 12.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ling ba033c5546
All checks were successful
ci / build (push) Successful in 5s
Merge branch 'hotfix/fix-todo-bigger-button'
2026-11-04 17:48:31 +00:00
.forgejo/workflows ci: hotfix 分支带上能构建 hotfix/* 的 workflow(从 v1.0.0 切出的分支自带的还是旧定义) 2026-11-04 17:39:15 +00:00
.deploy-marker chore: 触发 dev 分支构建(验证全链路自动更新) 2026-11-04 16:49:27 +00:00
.gitignore feat: 初始版本(todo CI/CD 案例) 2026-11-04 18:09:15 +08:00
app.js feat: 初始版本(todo CI/CD 案例) 2026-11-04 18:09:15 +08:00
Dockerfile fix(docker): version.json 需要 root 写权限 2026-11-04 21:53:02 +08:00
index.html feat(web): 标题下加一行说明(用于验证镜像变更能自动推进 dev/staging) 2026-11-04 16:53:49 +00:00
nginx.conf feat: 初始版本(todo CI/CD 案例) 2026-11-04 18:09:15 +08:00
README.md feat: 初始版本(todo CI/CD 案例) 2026-11-04 18:09:15 +08:00
style.css fix(web): 加大按钮点击区域(hotfix v1.0.0:尺寸偏小,移动端点不中) 2026-11-04 17:37:02 +00:00

todo-web

CI/CD 案例里的前端。故意做成没有构建步骤的纯静态页面 —— 案例的重点是流水线、 环境编排和审计,不是前端工程化。

它跑起来只依赖两件事:

  • nginx-unprivileged(uid 101,监听 8080),静态文件直接服务
  • /api/ 由 nginx 反代到同命名空间的 backend:8080

页面右上角的 build: <tag> 来自构建期写进镜像的 /version.json,用来肉眼确认 「现在这个环境跑的是哪个 tag」—— 演示 ImageUpdater 自动更新时最直观的证据。

本地预览

docker build -t todo-web:dev .
docker run --rm -p 8080:8080 todo-web:dev

(只打开页面会报接口错误,因为本地没有后端;要看完整功能请部署到集群。)

CI

.forgejo/workflows/ci.yaml:push 到 dev / release/** / hotfix/** / v* tag 时 构建并推送到 harbor.touchall.tech/todo/todo-web:

触发 镜像 tag
dev dev
release/v1.2 release-v1.2
hotfix/login hotfix-login
tag v1.2.3 v1.2.3

每次都额外推 sha-<12位> 作为不可变 tag。

环境与部署

清单不在这个仓里,在 todo-gitops: CI 只负责产出镜像,环境由 Tekton pipeline todo-env-setup 生成目录、Argo CD 同步。