GitLab CI/CD 是一个强大的工具,可以帮助开发团队实现自动化构建、测试和部署。本文将介绍如何使用 GitLab CI/CD 的 Pipeline 功能,以实现将 Markdown 文件自动编译为 PDF 并上传至 GitLab Release 界面的功能。

准备工作

在开始使用 GitLab CI/CD 的 Pipeline 功能之前,需要进行一些准备工作。具体步骤如下:

  1. 创建 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 文件。