diff --git a/README.md b/README.md index 6621dc2..04989b2 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,8 @@ kubectl exec -n platform-dev deployment/dev -c dev -- supervisorctl -c /etc/supe - 发布阶段失败会尝试恢复之前的 Demo 镜像和副本数,并在 Actions 中报失败,不把自动回退当作发布成功。首次发布失败恢复未启动状态。 - `images/<完整提交>.tar`、`.tar.sha256`、`.json` 是正式发行归档,Git 忽略整个 `images/`。源码、Git、配置与归档保留;临时 CI 工作目录和验证 Job 会清理。 -`config/namespace.yaml` 和 `config/prod/` 是首次建立生产资源的配置。生产镜像与副本数之后由发布流程管理;不要直接重套初始化配置覆盖正在运行的版本。更新平台拓扑前需保留当前固定镜像摘要和副本数,审查差异后再应用;日常发布和回退使用 Actions。 +`config/namespace.yaml` 和 `config/prod/` 保存生产拓扑和首次验证通过的镜像基线。当前生产镜像与副本数由发布流程管理;不要直接重套基线配置覆盖正在运行的版本。更新平台拓扑前需保留当前固定镜像摘要和副本数,审查差异后再应用;日常发布和回退使用 Actions。 Runner、工具镜像、缓存和角色配置归 `/dm/service/platform/ci/`。Runner 仅接受本仓库任务、并发为 1;构建 Pod 不挂 Kubernetes 令牌,部署 Pod 的生产权限仅能读取和更新本项目的 `demo` Deployment。只有可信仓库维护者可以修改工作流或触发发布,不接收外部 fork/PR 的自动任务。 + +2026-10-09 首次自动 CI 和手动发布已通过,开发与正式域名均已实际返回 `hello world`。后续添加依赖时,将 `go.mod`、`go.sum` 一起提交;构建的下载、测试和编译步骤复用同一模块缓存,不把缓存内容提交到 Git。 diff --git a/build/Dockerfile b/build/Dockerfile index ba3ddb3..d78f037 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,10 +1,10 @@ FROM docker.io/library/golang:1.25.14-bookworm@sha256:c268a04d59aea0b180ed9946a658cfab9e7b3391dc90eed6e4969ccff98c851f AS build ENV GOTOOLCHAIN=local CGO_ENABLED=0 WORKDIR /src -COPY src/go.mod ./ +COPY src/go.* ./ RUN --mount=type=cache,target=/go/pkg/mod go mod download COPY src/ ./ -RUN --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg/mod \ test -z "$(gofmt -l .)" \ && go test ./... \ && go vet ./... \ diff --git a/config/prod/deployment.yaml b/config/prod/deployment.yaml index 6c65ad4..c520306 100644 --- a/config/prod/deployment.yaml +++ b/config/prod/deployment.yaml @@ -4,7 +4,7 @@ metadata: name: demo namespace: project-demo spec: - replicas: 0 + replicas: 1 revisionHistoryLimit: 5 strategy: type: RollingUpdate @@ -33,7 +33,7 @@ spec: type: RuntimeDefault containers: - name: demo - image: git.dever.cc/demo-ci/demo:bootstrap + image: git.dever.cc/demo-ci/demo@sha256:25c2c028d9e241424ff91391597a8d349036764d38a66192266ad7d5cdd26e38 imagePullPolicy: Always env: - name: PORT