框CI 键
GitHub 动作在您自己的InstaBox VMs上运行 .
他们为CI醒来,闲暇时再暂停.
BoxCI 将 InstaBox VMs 转换为您的存储器的专用 GitHub 动作运行器 。 设置,移动您的已有的CI, 然后运行和监控, 全部从一个CLI。 没有保存,没有webhook服务器,也没有BoxCI账户.
- 可审.
--dry-run显示计划。 工作流程变化会留在本地供您审查、承诺和推动. - Migrates 现有 CI.
boxci migrate重新确定工作目标(布莱克史密斯、,ubuntu-latest)作为当地diff. - 特工准备好了. 粘贴一个提示, 或使用捆绑的 移徙技能。 。 。 .
- 安全倒计时. 叉式公关 或者一个没准备好的游泳池 运行在主机上
ubuntu-24.04。叉码从不看到你的提供者的钥匙. - 唯读仪表板.
boxci dashboard是本地的 认证的 从来不会醒过来.
快开始
需要节点.js ^22.23.4 || >=24.22.1Git,管理一个GitHub repo, 还有一个InstaBox的账户,还有一个VM.
npm install -g @balasivagn/boxci
cd /path/to/your-app # the repo whose CI you want to change
boxci init --dry-run # preview, creates nothing
boxci init # approve the plan; writes .github/workflows/boxci-wake.yml
boxci migrate # pick existing jobs to move onto the pool
init 财务报告和审定财务报表 migrate 只编辑本地文件。 他们从不创建分支,承诺,推动或公关. 审查 git diff -- .github/workflows,承诺并推进它 你通常的方式, 合并到默认分支, 然后:
boxci ci run --workflow ci.yml
boxci status
安装提示
-
旧节点 : npm 只发出警告(
EBADENGINE) (中文(简体) ).--version财务报告和审定财务报表--help工作,但设置会因证书信任错误而停止。 检查node --version先说. -
boxci: command not found数字 : 将 npm 的全球 bin 打开PATH,或安装到用户前缀 :npm install -g --prefix "$HOME/.local" @balasivagn/boxci export PATH="$HOME/.local/bin:$PATH" -
更新 : 重运行安装命令 .
-
未释放
main数字 :npm install -g https://github.com/balasivagn/boxci/archive/refs/heads/main.tar.gz(扫瞄)refs/heads/main承诺SHA针入. -
选回:
--repo owner/repository。 。 。 .init财务报告和审定财务报表migrate仍需要使用匹配的 GitHub 遥控器进行检出 . -
测试命令和工具链 活在自己的工作流程中。 它不会产生测试工作.
-
中断? 重运行
boxci init; 恢复状态. 在已经配置的重播中, 它会报告“ 已经配置的” , 而不会改变什么 . -
HTTPS 证书 : 自动使用系统证书。 见 证书信任。 。 。 .
-
现有游泳池? 先干后读 池子发现和回收。 。 。 .
用编码代理设置
在任何有终端访问和粘贴的代理中打开您的应用程序的取出 :
Set up BoxCI for this application's repository; use https://github.com/balasivagn/boxci as the documentation reference. Install `npm install -g @balasivagn/boxci`, check `boxci --version`, and run all setup and migration commands from this application's checkout. Reuse my current GitHub/InstaBox sign-ins and show me `boxci init --dry-run` with the target repository for approval before applying. Then complete setup, migrate compatible existing Linux x64 CI jobs with `boxci migrate`, preserve existing pools, verify with `boxci doctor` and `boxci status`, and leave all workflow changes locally for my review. Do not commit, push, or open a PR.
你完成浏览器的登录并批准计划.
如何运作
- 醒来. 由Ubuntu主持的工作唤醒每个游泳池的VM, 它从来不检查 PR代码.
- 路线. 池准备就绪: 建筑物目标 专用的自我托管标签。 否则,而且总是叉子公关,它使用主机
ubuntu-24.04。 。 。 . - 运行. GitHub 指定一个闲置的跑者进行构建 。 之后的VMS跟随InstaBox的正常闲置暂停.
更多内容: 架构和源图 • 妇女 交互式图表 (下载和本地打开)
图标
| 命令 | 它会做什么 |
|---|---|
boxci init | 设置跑步器、 密钥和游泳池变量; 写入提醒帮助器 |
boxci migrate | 将已有的工作流程任务移动到池中 |
boxci ci run | 发送一个相联的工作流程--workflow file.yml, (中文(简体) ), --ref(中文(简体) ) |
boxci status | 职业和流动状态,最近的工作(被动) |
boxci doctor | 检查账户、 配额、 映射、 合并状态、 密钥过期 |
boxci dashboard | 启动或重新打开只读的背景仪表板 |
boxci dashboard status/stop | 检查或停止仪表板; 跑者不受影响 |
boxci wake | 明确唤醒游泳池 |
boxci pool add --count 1 | 在您的配额内添加 VM |
boxci auth renew | 旋转30天的 CI 证书 |
boxci help [command] | 帮助 boxci 或一个命令( 也) --help, (中文(简体) ), -h, (中文(简体) ), --version(中文(简体) ) |
旗帜 : --dry-run 预览任何更改, --yes 跳过提示, --json 给出结构化输出, --repo 选择仓库. status, (中文(简体) ), doctor 财务报告和审定财务报表 dashboard 从不运行来宾命令或唤醒VM.
仪表盘在关闭终端后继续运行,不会重启. --no-open 跳过浏览器, --foreground 用于调试, --port N 选择本地端口(0-65535;默认为0,选择自由端口;先停止运行的仪表板来更改). 见 仪表板操作。 。 。 .
迁移现有工作
boxci migrate --match blacksmith --dry-run
boxci migrate --match blacksmith
没有旗子交互选择工作; --jobs file.yml:job,... 命名他们; boxci init --migrate-workflows 设置后立即迁移. 重运行重用已存在的池和帮助器.
唤醒逻辑存在于 .github/workflows/boxci-wake.yml。您的工作流程调用它,选择的工作会消耗它的输出 :
jobs:
boxci-wake:
uses: ./.github/workflows/boxci-wake.yml
with:
pool: ${{ vars.BOXCI_POOL }}
runner-label: your-boxci-label
secrets:
api-key: ${{ secrets.BOXCI_API_KEY }}
test:
needs: boxci-wake
runs-on: ${{ fromJSON(needs.boxci-wake.outputs.runner) }}
将援助者及其召唤者集合起来。 让你的经纪人做,指着它 skills/boxci-migrate/SKILL.md 并询问,例如,"把我们的铁匠测试工作转到BoxCI".
--match是针对每个工作的静态测试的大小写不敏感正则表达式runs-on。 。 。 .--jobs胜过--match。动态表达式被跳过.- 选择同样在主机倒计时上工作的 Linux x64 工作 。 检查矩阵任务和复数
needs手边. - 只有排程更改 。 工具链、服务和缓存保持不变.
- 生成的内线后醒块可以被提取出. 自定义的和相冲突的帮助文件需要人工审查.
- 旧版所留下的启动工作流程被保存为遗留文件. 如果多余的话,你自己去取.
限制
- 所需经费: GitHub.com 重播,并启用管理员访问和动作. 暂停的VM仍然数到InstaBox配额. 已存在的GitHub和InstaBox的签入被再用;BoxCI将InstaBox CLI捆绑,并可以私下安装一个校验和验证的GitHub CLI.
- 为 CI 使用一个专门的 InstaBox 账户 . CI密钥可以运行其账户中每个VM上的命令.
- 能力: 每个跑者一份工作。 在配额内,可达5瓦姆。 更多 VM 仅帮助多个任务或矩阵 。 BoxCI 从不删除另一个 VM 免费配额.
- 成本和速度: 没有承诺。 BoxCI不收费,但InstaBox使用和按惯例主持提醒/倒计时账单,没有支出上限. 参见 InstaBox 限制。 。 。 .
- 每30天核证一次 没有自动更新.
boxci doctor在七天内发出警告; 运行boxci auth renew。如果失效,工作会回到托管的Ubuntu。 见 更新。 。 。 . - 醒后排队任务 : 跑步准备不能证明 GitHub 连接,在任务完成前会选择后退,因此无法救出一个已经排队的工作. 见 排除出问题。 。 。 .
- 状态 : v. 4.1, 早报. POSIX shell 只命令; 本地的 Linux/ Windows 靴子被未验证(验证) (中文(简体) ). 没有自动卸载;见 停止使用 BoxCI。 。 。 .
- 附属关系: 独立开源。 未由InstaBox所建或认可,也未附属于boxci.dev.
文档
| 指南 | 封面 |
|---|---|
| 配置 | 签名、 本地记录、 Repo 设置、 池中发现 |
| 业务 | 更新、增加能力、恢复、排除故障 |
| 建筑 | 设置、CI和监测路径 |
| 验证 | 测试什么和没有 |
| 释放 | npm 信任的出版, GitHub 发行 |
| 警卫 | 信誉范围和隔离限制 |
捐款
欢迎想法、特征请求和协作: 打开一个问题测试不需要现场证明.
git clone https://github.com/balasivagn/boxci.git
cd boxci && npm ci
npm test
python3 -m unittest discover -s ci/tests
npm run check
npm pack --dry-run
ci/wake.py 财务报告和审定财务报表 vendor/install.sh 安全敏感; 更改需要匹配 Python 测试( 见 一般事务人员(其他职等)) (中文(简体) ). 保留被忽略的抓取文件 .orca-scratch/。更多内容: 开发者经验 • 妇女 设计符号 • 妇女 项目现场。 。 。 .