菜单

CI/CD 工作流

相关源文件

目的与范围

本文档描述了在 Apollo-11 仓库中实现的持续集成和持续交付 (CI/CD) 工作流。这些工作流自动化了验证、测试和维护任务,确保了文档的准确性和仓库的一致性。有关如何向仓库贡献以及格式标准的信息,请参阅贡献到仓库拉取请求管理

CI/CD 工作流概述

Apollo-11 仓库使用 GitHub Actions 来实现自动化工作流,以维护仓库质量。这些工作流主要关注文档验证,确保所有文档文件格式一致。

来源:.github/workflows/markdownlint.yml1-15 package.json1-10

Markdown Linting 工作流

主要的 CI/CD 工作流是 Markdown Linting,它确保仓库中的所有 Markdown 文件都遵循一致的格式标准。这有助于保持文档的可读性和一致性。

来源:.github/workflows/markdownlint.yml1-15

工作流配置

Markdown linting 工作流定义在 .github/workflows/markdownlint.yml 中,并在 push 和 pull request 事件时运行。它使用 DavidAnson/markdownlint-cli2-action GitHub Action 来 lint Markdown 文件。

组件描述
触发事件Push 和 Pull Request
运行器Ubuntu 最新版
操作DavidAnson/markdownlint-cli2-action@v19
配置.markdownlint.yml
目标文件.md, translations/.md, Comanche055/.md, Luminary099/.md

来源:.github/workflows/markdownlint.yml1-15

工作流实现

该工作流在 GitHub 托管的运行器上运行,并执行以下步骤:

  1. 使用 actions/checkout@v3 检出仓库代码
  2. 使用 markdownlint-cli2 action lint 所有 Markdown 文件
  3. 使用 .markdownlint.yml 中指定的配置
  4. 扫描匹配指定 glob 模式的文件

如果检测到任何 Markdown 格式问题,工作流将失败,并指示哪些文件需要更正。

来源:.github/workflows/markdownlint.yml1-15

本地开发支持

为了支持本地开发和测试,仓库包含 npm 脚本,允许开发人员在提交更改之前在本地运行相同的 linting 过程。

来源:package.json1-10 bun.lockb1-4

NPM 脚本

package.json 文件定义了以下用于 linting 的 npm 脚本:

脚本命令目的
lintmarkdownlint-cli2 *.md translations/*.md Comanche055/*.md Luminary099/*.md --config .markdownlint.yml检查 Markdown 文件的格式问题
lint:fixmarkdownlint-cli2 *.md translations/*.md Comanche055/*.md Luminary099/*.md --config .markdownlint.yml --fix尽可能自动修复 Markdown 格式问题

这些脚本可以使用 npm 或 bun 运行:

  • npm run lint - 检查问题
  • npm run lint:fix - 尽可能自动修复问题

来源:package.json1-10

与仓库结构的集成

CI/CD 工作流与整体仓库结构集成,确保原始 Apollo-11 源代码和支持文档的一致性。

来源:.github/workflows/markdownlint.yml1-15 package.json1-10 Luminary099/README.md1-30

CI/CD 工作流的优势

在 Apollo-11 仓库中实现 CI/CD 工作流提供了以下几个主要优势:

  1. 一致性:确保所有文档都遵循相同的格式标准
  2. 质量控制:在合并之前自动检测格式问题
  3. 贡献者支持:就格式问题向贡献者提供清晰的反馈
  4. 自动化:减少格式问题的手动审查工作
  5. 保留:有助于维护仓库的历史准确性和可读性

这些工作流对于具有重要历史价值的仓库尤为重要,确保随着仓库的演变,文档保持可访问和一致。

来源:.github/workflows/markdownlint.yml1-15 package.json1-10

依赖项和工具

CI/CD 工作流依赖以下关键依赖项:

工具版本目的
markdownlint-cli2^0.16.0用于 Markdown linting 的命令行界面
DavidAnson/markdownlint-cli2-actionv19用于 Markdown linting 的 GitHub Action

这些工具被配置为协同工作,为仓库中的所有 Markdown 文档提供全面的验证。

来源:.github/workflows/markdownlint.yml1-15 package.json1-10