Use a better structure

This commit is contained in:
Baohua Yang
2026-02-09 09:32:05 -08:00
parent fdb879dcf2
commit e669ee0fe8
167 changed files with 2462 additions and 2462 deletions

View File

@@ -1,4 +1,4 @@
# CI/CD
## CI/CD
**持续集成(Continuous integration)** 是一种软件开发实践每次集成都通过自动化的构建包括编译发布自动化测试来验证从而尽早地发现集成错误

View File

@@ -1,4 +1,4 @@
# GitHub Actions
## GitHub Actions
GitHub [Actions](https://github.com/features/actions) 是 GitHub 推出的一款 CI/CD 工具。
@@ -23,6 +23,6 @@ jobs:
args: go version
```
## 参考资料
### 参考资料
* [Actions Docs](https://docs.github.com/en/actions)

View File

@@ -1,8 +1,8 @@
# DevOps 工作流完整示例
## DevOps 工作流完整示例
本章将演示一个基于 Docker, Kubernetes Jenkins/GitLab CI 的完整 DevOps 工作流
## 工作流概览
### 工作流概览
1. **Code**: 开发人员提交代码到 GitLab
2. **Build**: GitLab CI 触发构建任务
@@ -12,25 +12,25 @@
6. **Verify**: 人工或自动化验证
7. **Release (Production)**: 审批后自动部署到生产环境
## 关键配置示例
### 关键配置示例
### 1. Dockerfile (多阶段构建)
#### 1. Dockerfile (多阶段构建)
```dockerfile
# Build stage
## Build stage
FROM golang:1.18 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .
# Final stage
## Final stage
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
CMD ["./main"]
```
### 2. GitLab CI (.gitlab-ci.yml)
#### 2. GitLab CI (.gitlab-ci.yml)
```yaml
stages:
@@ -67,7 +67,7 @@ deploy_staging:
- develop
```
## 最佳实践
### 最佳实践
1. **不可变基础设施**: 一旦镜像构建完成在各个环境Dev, Staging, Prod中都应该使用同一个镜像 tag (通常是 commit hash)而不是重新构建
2. **配置分离**: 使用 ConfigMap Secret 管理环境特定的配置不要打包进镜像

View File

@@ -1,4 +1,4 @@
# Drone
## Drone
基于 `Docker` `CI/CD` 工具 `Drone` 所有编译测试的流程都在 `Docker` 容器中进行
@@ -6,13 +6,13 @@
本小节以 `GitHub` + `Drone` 来演示 `Drone` 的工作流程当然在实际开发过程中你的代码也许不在 GitHub 托管那么你可以尝试使用 `Gogs` + `Drone` 来进行 `CI/CD`
## Drone 关联项目
### Drone 关联项目
Github 新建一个名为 `drone-demo` 的仓库
打开我们已经 [部署好的 Drone 网站](install.md) 或者 [Drone Cloud](https://cloud.drone.io),使用 GitHub 账号登录,在界面中关联刚刚新建的 `drone-demo` 仓库。
打开我们已经 [部署好的 Drone 网站](9.2_install.md) 或者 [Drone Cloud](https://cloud.drone.io),使用 GitHub 账号登录,在界面中关联刚刚新建的 `drone-demo` 仓库。
## 编写项目源代码
### 编写项目源代码
初始化一个 git 仓库
@@ -72,7 +72,7 @@ trigger:
└── app.go
```
## 推送项目源代码到 GitHub
### 推送项目源代码到 GitHub
```bash
$ git add .
@@ -82,7 +82,7 @@ $ git commit -m "test drone ci"
$ git push origin master
```
## 查看项目构建过程及结果
### 查看项目构建过程及结果
打开我们部署好的 `Drone` 网站或者 Drone Cloud即可看到构建结果
@@ -92,7 +92,7 @@ $ git push origin master
本书 GitBook 也使用 Drone 进行 CI/CD具体配置信息请查看本书根目录 [`.drone.yml`](../../../.drone.yml) 文件
## 参考链接
### 参考链接
* [Drone Github](https://github.com/drone/drone)
* [Drone 文档](https://docs.drone.io/)

View File

@@ -1,6 +1,6 @@
# 部署 Drone
## 部署 Drone
## 要求
### 要求
* 拥有公网 IP域名 (如果你不满足要求可以尝试在本地使用 Gogs + Drone)
@@ -12,7 +12,7 @@
* `CI/CD` 有一定了解
## 新建 GitHub 应用
### 新建 GitHub 应用
登录 GitHub https://github.com/settings/applications/new 新建一个应用。
@@ -20,7 +20,7 @@
接下来查看这个应用的详情记录 `Client ID` `Client Secret`之后配置 Drone 会用到
## 配置 Drone
### 配置 Drone
我们通过使用 `Docker Compose` 来启动 `Drone`编写 `docker-compose.yml` 文件
@@ -68,18 +68,18 @@ volumes:
新建 `.env` 文件输入变量及其值
```bash
# 必填 服务器地址,例如 drone.domain.com
## 必填 服务器地址,例如 drone.domain.com
DRONE_SERVER_HOST=
DRONE_SERVER_PROTO=https
DRONE_RPC_SECRET=secret
HOSTNAME=demo
# 必填 在 GitHub 应用页面查看
## 必填 在 GitHub 应用页面查看
DRONE_GITHUB_CLIENT_ID=
# 必填 在 GitHub 应用页面查看
## 必填 在 GitHub 应用页面查看
DRONE_GITHUB_CLIENT_SECRET=
```
### 启动 Drone
#### 启动 Drone
```bash
$ docker-compose up -d