GitLab CI/CD 是一个强大的工具,可以帮助开发团队实现自动化构建、测试和部署。本文将介绍如何使用 GitLab CI/CD 的 Pipeline 功能,以实现将 Markdown 文件自动编译为 PDF 并上传至 GitLab Release 界面的功能。
准备工作
在开始使用 GitLab CI/CD 的 Pipeline 功能之前,需要进行一些准备工作。具体步骤如下:
- 创建 GitLab 项目:在 GitLab 上创建一个新项目,并将 Markdown 文件上传至项目的某个目录下。例如,我们将 Markdown 文件上传至项目的根目录下,并命名为
example.md
。
安装 Pandoc:Pandoc 是一个用于文档转换的工具,我们将使用它将 Markdown 文件转换为 PDF。在安装 Pandoc 之前,需要先安装 LaTeX,因为 Pandoc 使用 LaTeX 进行 PDF 渲染。具体安装步骤请参考 Pandoc 和 LaTeX 的官方文档。
创建 Release:在 GitLab 上创建一个 Release,用于存储编译好的 PDF 文件。具体操作方法请参考 GitLab 的官方文档。
创建 CI/CD 配置文件:在项目根目录下创建一个
.gitlab-ci.yml
文件,并在其中定义 Pipeline 的流程。
编写 CI/CD 配置文件
下面是一个样例的.gitlab-ci.yml
文件,用于实现将 Markdown 文件编译为 PDF 并上传至 GitLab Release 界面的功能。
image: pandoc/core:latest
stages:
- build
pdf:
stage: build
script:
- pandoc example.md -o example.pdf
- curl --header "PRIVATE-TOKEN: ${CI_PRIVATE_TOKEN}" --upload-file example.pdf "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/uploads"
artifacts:
paths:
- example.pdf
上述配置文件中,我们使用了 pandoc/core:latest
作为 Docker 镜像,该镜像已经预安装了 Pandoc 工具。
该文件中包含了一个 build 阶段,其中包含了一个 pdf 任务。在 pdf 任务中,我们使用 Pandoc 工具将 Markdown 文件转换为 PDF 文件,并使用 cURL 工具将编译好的 PDF 文件上传至 GitLab Release 界面。注意,我们使用了环境变量${CI_PRIVATE_TOKEN}
和${CI_API_V4_URL}
,这些变量是 GitLab 自动注入的,用于进行身份验证和上传文件。
最后,我们将编译好的 PDF 文件定义为 Pipeline 的 artifacts,这样可以确保文件能够被保留并可用于后续的部署。
运行 Pipeline
完成 CI/CD 配置文件的编写后,我们可以在 GitLab 上启动 Pipeline,将 Markdown 文件自动编译为 PDF 并上传至 GitLab Release 界面。具体步骤如下:
提交代码:将
.gitlab-ci.yml
文件提交到 GitLab启动 Pipeline:在 GitLab 上打开项目,并点击“CI/CD”->“Pipelines”选项卡。点击“Run Pipeline”按钮,启动 Pipeline 流程。
等待 Pipeline 完成:在 Pipeline 启动后,GitLab 会自动创建一个 Runner 并分配任务。Pipeline 的状态会在页面上实时更新,直到 Pipeline 执行完成。
查看 Release:Pipeline 执行完成后,我们可以在 GitLab Release 界面中找到编译好的 PDF 文件。点击 PDF 文件链接,即可下载并查看编译好的 PDF 文件。