菜单

对仓库的贡献

相关源文件

本页面提供了贡献DevOps Exercises仓库的详尽指南。它概述了为使有效贡献被主代码库接受所需的步骤、准则和最佳实践。

有关使用该仓库进行面试准备的信息,请参阅面试准备

目的与范围

DevOps Exercises仓库是一个社区驱动的DevOps和SRE面试问题、挑战和学习材料的集合。本文档解释了

  1. 如何设置您的贡献环境
  2. 贡献工作流程
  3. 内容格式标准
  4. 验证贡献的测试和CI流程
  5. 提交拉取请求的最佳实践

存储库结构

该仓库遵循结构化的组织方式,对各种DevOps和SRE练习及主题进行分类。

贡献工作流程概述

来源: .github/workflows/ci_workflow.yml scripts/run_ci.sh

设置您的环境

要为仓库做贡献,请按照以下步骤设置您的开发环境

  1. Fork本仓库:在GitHub上创建您自己的仓库Fork。

  2. Clone您的Fork:将您的Fork克隆到本地机器。

  3. 安装依赖项:该仓库使用Python进行测试和CI。

内容格式标准

该仓库遵循特定的格式标准,以确保所有练习的一致性。

Markdown结构

问题和答案应使用HTML <details><summary> 标签进行结构化

常见格式问题

  • 缺少闭合标签(</details></summary>
  • 标签嵌套不当
  • 答案前缺少 <br><b>
  • 闭合 </details> 前缺少 </b>

来源: tests/testcases/testcase1.md tests/testcases/testcase2.md tests/testcases/testcase3.md

测试您的更改

在提交拉取请求之前,请确保您的更改通过了存储库的所有测试。

语法检查

该仓库使用自定义语法检查器,可验证Markdown文件的正确格式

要在本地运行语法检查器

运行CI脚本

您也可以在本地运行整个CI流程

该脚本

  1. 查找存储库中的所有Markdown文件(不包括tests目录)
  2. 对每个文件运行语法linter
  3. 运行flake8检查Python代码风格

来源: tests/syntax_lint.py scripts/run_ci.sh

持续集成流程

当您提交拉取请求时,存储库的CI工作流程会自动运行以检查您的更改。

来源: .github/workflows/ci_workflow.yml .travis.yml

贡献最佳实践

贡献类型

  1. 新的练习或主题:为现有主题添加新练习或创建新主题
  2. 更正:修复现有练习中的错误
  3. 改进:增强解释,添加上下文或澄清内容
  4. 文档:改进文档和示例

拉取请求指南

  1. 保持更改的专注性:保持PR小巧,专注于单个问题
  2. 遵循现有模式:保持存储库的风格和结构
  3. 彻底测试:在提交之前确保您的更改通过所有测试
  4. 清晰的描述:撰写清晰的PR描述,解释您的更改
  5. 引用问题:如果您的PR解决了某个问题,请在描述中引用它

存储库组件结构

来源: images/storage.png images/certificates.png images/testing.png images/databases.png images/design.png images/distributed.png

常见问题与解决方案

语法检查器错误

错误消息可能的原因解决方案
“在X行附近缺少闭合detail标签”缺少 </details> 标签在适当的位置添加闭合标签
“在X行附近缺少opening detail标签”缺少或放错位置的 opening <details> 标签在适当的位置添加opening标签
“在X行附近缺少closing summary标签”缺少 </summary> 标签在问题文本后添加闭合标签
“在X行附近缺少opening summary标签”缺少 opening <summary> 标签在问题文本前添加opening标签

CI进程失败

失败原因解决方案
Syntax lint 测试失败Markdown格式问题检查错误消息以获取具体行号并修复标签
PEP8检查失败Python代码风格问题在本地运行 flake8 以识别和修复风格问题
运行run_ci.sh时权限被拒绝脚本不可执行运行 chmod +x scripts/run_ci.sh 使其可执行

来源: tests/syntax_lint.py58-92

结论

贡献DevOps Exercises仓库是帮助DevOps社区并同时提高自身知识的好方法。通过遵循本文档中的准则,您可以确保您的贡献能够快速被接受,并只需最少的修改。

如有关于贡献的任何问题或澄清,请在仓库中打开一个问题,或联系维护者。

来源: credits.md