在本地运行管道
GitTree 为工作流程文件或一项作业准备确切的 act 或 gitlab-ci-local 命令,并将其键入新终端以供您运行。在推送之前,作业会在计算机上的 Docker 容器中运行。本地管道是免费计划的一部分,不需要托管帐户。
适用于 GitTree 免费:所有本地 Git 功能,无需帐户。
在此页面上
开始之前
- 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。
| 行动 | macOS | Windows 和 Linux |
|---|---|---|
| 命令面板,然后是 Prepare local pipeline… | ⌘⇧P | Ctrl+Shift+P |
| Show CI/CD | ⌥P | Alt+P |
步骤
添加管道文件,或使用您的管道文件
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 绝不会覆盖现有文件。该文件在编辑器中打开:将构建和测试命令放入其中。准备命令
按 Run Locally…。在 Prepare local pipeline 中,选择 Pipeline config、Job 或 Runner default jobs、Terminal shell,然后选择 Prepare command。还没有运行。
在终端中运行它
阅读 Prepared command,然后阅读 Type in new terminal。 GitTree 将其输入到新终端中,并且不要按 Enter:您自己查看并按 Enter。作业的输出出现在终端中。
预期结果
运行程序第一次拉取作业的图像,然后在容器中运行每个步骤并在终端中打印其结果。您的存储库的文件将按磁盘上的状态使用,无论是否已提交。
安装 Docker 和运行程序
| 节目 | macOS | Windows | Linux |
|---|---|---|---|
| Docker | Docker Desktop、OrbStack 或 Colima | Docker Desktop | Docker Engine 或 Docker Desktop |
| 行动 (GitHub Actions) | brew install act | winget install nektos.act | nektosact.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 testBitbucket 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 键。在您执行此操作之前,没有任何操作会运行。
