跳至内容
GitTree
持续集成/持续交付

在本地运行管道

GitTree 为工作流程文件或一项作业准备确切的 act 或 gitlab-ci-local 命令,并将其键入新终端以供您运行。在推送之前,作业会在计算机上的 Docker 容器中运行。本地管道是免费计划的一部分,不需要托管帐户。

免费已更新

适用于 GitTree 免费:所有本地 Git 功能,无需帐户。

在此页面上
  1. 开始之前
  2. 在哪里可以找到它
  3. 步骤
  4. 预期结果
  5. 安装 Docker 和运行程序
  6. 示例文件
  7. Bitbucket Pipelines 和 Azure Pipelines
  8. 本地运行与主机有何不同
  9. 如果出现问题
  10. 问题
  11. 有关的

开始之前

  • Docker,正在运行:Docker Desktop、OrbStack、Colima 或 Docker Engine。两个运行程序都在容器中启动每项作业。
  • 文件的运行程序:act 代表 GitHub Actions (.github/workflows/*.yml),gitlab-ci-local 代表 GitLab CI (.gitlab-ci.yml)。将其安装在存储库外部的 PATH 上的文件夹中。
  • 受信任的存储库(存储库信任):本地运行执行存储库的代码。
  • 支持的终端 shell:macOS 上的 bash、zsh、sh 或 Fish; Windows 上的 PowerShell;在 Linux 上运行 bash、zsh、sh 或 Fish。

在哪里可以找到它

  • 工具栏中的 CI/CD 按钮:如果没有连接的帐户或 Pro,视图将在 Local pipelines 上打开。
  • 左侧面板的 TOOLS 部分:Prepare local pipeline。
  • 工具栏中的 Tools(位于 Terminal 旁边)或存储库选项卡的菜单:Prepare local pipeline…,也可以在命令面板中或使用 Alt+Shift+L。
行动macOSWindows 和 Linux
命令面板,然后是 Prepare local pipeline…⌘⇧PCtrl+Shift+P
Show CI/CD⌥PAlt+P

步骤

  1. 检查您需要什么

    打开CI/CD。 Local pipelines 列出了 What you need:Docker、act 和 gitlab-ci-local 以及 Found 或 Not found 以及每个文件的位置、存储库的信任和终端 shell。缺少的程序显示如何安装它;安装它,然后按 Check again。 Ask Nour to Set Up the Local Runner 是 Pro 版的一部分,现在每个人都可以免费使用。在本地准备并运行该命令则不然。

    本地管道上的 CI/CD 视图,找到了 Docker 和 act,但未找到 gitlab-ci-local
    本地管道被标记为“免费”。他们之上的托管运行仍然需要一个连接的帐户。GitTree 与演示存储库的接口。
  2. 添加管道文件,或使用您的管道文件

    Pipeline files in this repository 列出每个带有 Ready to run 的文件或其无法运行的原因。由于还没有文件,Add GitHub Actions sample 写入 .github/workflows/gittree-local.yml,Add GitLab CI sample 写入 .gitlab-ci.yml,每个都有两个带注释的作业。 GitTree 绝不会覆盖现有文件。该文件在编辑器中打开:将构建和测试命令放入其中。

  3. 准备命令

    按 Run Locally…。在 Prepare local pipeline 中,选择 Pipeline config、Job 或 Runner default jobs、Terminal shell,然后选择 Prepare command。还没有运行。

  4. 在终端中运行它

    阅读 Prepared command,然后阅读 Type in new terminal。 GitTree 将其输入到新终端中,并且不要按 Enter:您自己查看并按 Enter。作业的输出出现在终端中。

预期结果

运行程序第一次拉取作业的图像,然后在容器中运行每个步骤并在终端中打印其结果。您的存储库的文件将按磁盘上的状态使用,无论是否已提交。

安装 Docker 和运行程序

每个系统上要安装什么
节目macOSWindowsLinux
DockerDocker Desktop、OrbStack 或 ColimaDocker DesktopDocker Engine 或 Docker Desktop
行动 (GitHub Actions)brew install actwinget install nektos.actnektosact.com 上的安装脚本
gitlab-ci-local (GitLab CI)npm install -g gitlab-ci-local来自 GitHub 版本的 .exe,位于 PATH 上的文件夹中npm install -g gitlab-ci-local

当与 npm 一起安装时,gitlab-ci-local 需要 Node.js 18 或更高版本。 GitTree 只查找 PATH 上的程序;它从不运行它们来检查,因此它无法判断 Docker 引擎是否已启动。

示例文件

GitHub Actions 示例运行 build 作业,然后在 ubuntu-latest 上运行 test 作业。在第一次运行时,行为会询问要使用哪个跑步者图像; Medium 适合大多数项目。 GitLab CI 示例在 alpine 容器中运行相同的两个作业。将 echo 行替换为您自己的命令,然后在文件准备好时提交文件。如果存储库位于 GitHub 或 GitLab 上,则该主机也会运行该文件。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: npm ci && npm run build
  test:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v4
      - name: Test
        run: npm test

Bitbucket Pipelines 和 Azure Pipelines

bitbucket-pipelines.yml 或 azure-pipelines.yml 没有受支持的本地运行程序,因此这些文件显示 No local runner。要在您的计算机上运行相同的步骤,请添加 GitHub Actions 或 GitLab CI 示例并将命令复制到其中。托管管道继续从其自己的文件运行。

本地运行与主机有何不同

  • 主机上设置的秘密和变量不可用;将工作所需的信息亲自传递给跑步者。
  • act 默认运行推送触发的作业。选择一个 Job 来运行,无论其触发器如何。
  • 当 GitTree 列出作业时,不会解析包含、模板和可重用工作流程;运行程序在运行时解决它们。
  • 容器可以访问您的网络并使用您提供给它们的凭据。

如果出现问题

“在 PATH 上找不到安全的本机运行程序。将其安装在存储库外部,然后刷新。”

将 act 或 gitlab-ci-local 安装在 PATH 上不在存储库内的文件夹中,然后按 Check again 或 Refresh。如果您更改了 shell 配置文件中的 PATH,请在 macOS 上退出并重新打开 GitTree。

“此提供程序配置没有受支持的本地运行程序。”

该文件是 Bitbucket 或 Azure 管道。添加 GitHub Actions 或 GitLab CI 示例并将步骤复制到其中。

“在准备本地管道命令之前,请信任此存储库。”

首先信任存储库 (存储库信任),然后再次准备命令。

终端显示无法连接到 Docker 守护程序。

启动 Docker Desktop、OrbStack、Colima 或 Docker 服务,等待其运行,然后再次按命令上的 Enter。

问题

本地管道是否需要 GitTree Pro 或托管帐户?

不会。本地管道是免费计划的一部分,仅读取存储库的文件。托管 CI/CD 运行、重新运行和批准是 Pro 的一部分。

GitTree 是否为我运行管道?

不。GitTree 准备命令并将其输入终端;您按 Enter 键。在您执行此操作之前,没有任何操作会运行。