3.6. 使用 GitHub Actions 生成 TechDocs 管道
Red Hat Developer Hub (RHDH)包含内置的 TechDocs 构建器,但默认设置并不适用于生产环境。在生产环境中部署 TechDocs 文档涉及以下操作:
- 在 CI/CD 系统中构建文档
- 将生成的文档站点发布到外部对象存储,如 AWS S3,以确保生成的文档在重启 RHDH 并且可以处理更大的文档工作负载之间保留。
- 在您的 RHDH 部署中配置 TechDocs 以只读模式运行,以便 TechDocs 从云存储桶中 读取静态生成的文档文件,而无需在运行时尝试生成它们。
您可以在机构中的用户更改存储在 GitHub 存储库中的文档文件时,使用 GitHub Actions 实施 TechDocs,以自动生成并发布您的 TechDocs。
先决条件
- TechDocs 插件已在您的 RHDH 实例上启用和配置。
- 您的组织包含存储在远程存储库中的文档文件。
- 您有一个 mkdocs.yaml 文件,位于存储库的根目录中。
-
您有
catalog.entity.create和catalog.location.create权限,从远程存储库将文档导入到 TechDocs 中。 - 您有一个 AWS S3 存储桶来存储 TechDocs 站点。
- 为您的 S3 存储桶配置了最小 IAM 策略,授予 Write 和 Read 访问权限。
- 管理员已创建了 IAM 用户,附加必要的策略,并在 AWS 控制台中生成访问密钥。
流程
设置 GitHub Actions 工作流。
在 GitHub 上,创建 RHDH TechDocs Pipeline 存储库的分叉。
注意rhdh-wagon-pipeline存储库包含一个generate-and-publish-wagon.yaml工作流,该工作流从 docs 文件夹自动生成 TechDocs,并将其发布到 Amazon S3 存储桶。- 使用 GitHub GUI 确保启用了运行工作流所需的所有权限。
将工作流连接到 AWS 帐户所需的 Repository secret,如
TECHDOCS_S3_BUCKET_NAME、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION。注意rhdh-wagon-pipeline工作流中的默认mkdocs.yaml文件会安装 HEKETI-core和minify插件。-
可选:自定义
rhdh-HEKETI-pipeline存储库的默认结构或文件,以满足您的机构的需求。 -
可选:通过将插件名称添加到
文件的mkdocs.yamlplugins部分,并添加到steps.name: install mkdocs and mkdocs plugins部分来添加要使用的其他 mkdocs和mkdocs plugins 部分。
-
.在 OpenShift Container Platform 控制台的导航菜单中,点 ConfigMaps 并选择 RHDH
app-config.yaml文件。 更新
app-config.yaml文件,使您的 Amazon S3 存储桶能够向 RHDH 实例提供 TechDocs。例如:techdocs: builder: external publisher: type: awsS3 awsS3: bucketName: ${AWS_S3_BUCKET_NAME} accountId: ${AWS_ACCOUNT_ID} region: ${AWS_REGION} aws: accounts: - accountId: ${AWS_ACCOUNT_ID} accessKeyId: ${AWS_ACCESS_KEY_ID} secretAccessKey: ${AWS_SECRET_ACCESS_KEY} catalog: locations: - type: url target: https://github.com/<your_org>/rhdh-techdocs-pipeline/blob/main/catalog-info.yaml- 点击 Save。
在 OpenShift Container Platform 控制台的导航菜单中,点 Topology 并重启 pod。
注意对
docs文件夹或mkdocs.yaml文件的更改会触发rhdh-wagon-pipeline工作流运行。在rhdh-wagon-pipeline工作流成功运行后,生成的 TechDocs 会上传到您的 Amazon S3 存储桶。
验证
- 进入您的 RHDH 实例,点 Docs 查看来自 Amazon S3 存储桶的 TechDocs。