3 个版本

0.1.0 2024 年 3 月 13 日
0.0.4 2024 年 3 月 17 日
0.0.3 2024 年 3 月 17 日
0.0.2 2024 年 3 月 16 日
0.0.1 2024 年 3 月 13 日

#262命令行工具

Download history 96/week @ 2024-03-08 274/week @ 2024-03-15 29/week @ 2024-03-22 19/week @ 2024-03-29

每月 116 次下载

GPL-3.0-or-later

26KB
475

SimpleCI - 简单的 CI/CD 管道执行器

⚠️ SimpleCI 最初是用 Python 编写的。目前可能缺少一些功能!请参阅 Python 版本仓库 此处

Simple-CI 是一个类似于 GitLab CI/CD 的本地 CI/CD 管道执行器。它在提交后通过 git 钩子触发,并执行用户在名为 .simple-ci.yml 的简单脚本中给出的指令,该脚本位于目录根目录。工件(日志、编译的二进制文件等)存储在与项目文件夹同一级别的文件夹中,名为 [project name]-simple-ci。

为什么选择 simple-CI?

自动化管道,如 GitLab CI/CD,是提高软件开发效率的伟大工具。然而,语法可能很繁琐,用户完全依赖 GitLab 和其运行者(尽管您可以创建自己的运行者)。此外,安装像 GitLab 或 Jenkins 这样的工具本地需要大量资源,并且需要它们在后台运行。

Simple-CI/CD 通过为用户提供一种简单的方法来运行 CI/CD 管道来解决这些问题。

  1. 在您的存储库中启动 simple-ci。
  2. 在 .simple-ci.yml 文件中构建您的管道。
  3. 使用 git 提交更改,并让管道自行执行。
  4. 赚钱!

有关更深入的文档,请参阅 Wiki

命令

  • simpleci start:创建 git 钩子。
  • simpleci stop:删除 git 钩子(管道将不会执行)。
  • simpleci init:创建 git 钩子和 .simple-ci.yml 文件。
  • simpleci exec:执行管道。
  • simpleci clean:删除所有工件文件。

.simple-ci.yml 脚本的一个简单示例

variables:
  GLOBAL_VAR: "last"

stages:
  - stage1
  - stage2

stage1:
  variables:
    MYVAR: "second"
  jobs:
    - job1
    - job2

stage2:
  inside_docker:
    image: ruby:2.7
    path: /tmp/
  jobs:
    - job3

job1:
  variables:
    fie_name: "new_file"
  artifacts:
    paths:
      - new_file
  script:
    - echo "This is the first job."
    - touch $file_name

job2:
  inside_docker:
    image: ubuntu
    path: /
  script:
    - echo "This is the $MYVAR job."

job3:
    script:
    - echo "This is the $GLOBAL_VAR job, that will be executed after stage1 is completed."

您可以在 Wiki 上找到完整的语法文档。

安装

cargo install simpleci

依赖关系

  • bash
  • git

贡献

如果您想做出贡献,请随时提交任何问题。

路线图

  • 基本功能:脚本、作业和阶段管道
  • 关键字:变量(在作业执行之前定义环境变量)
  • 管道日志
  • Gitlab CI/CD 管道
  • 配置文件
  • 创建 Git 钩子
  • 多语言支持
  • 关键字:Docker(在 Docker 中执行作业)
  • 关键字:工件(管道执行后保存的文件)
  • 关键字:缓存(使用先前作业中创建的文件)
  • 添加测试
  • only-if(测试条件。如果为真 -> 运行作业)
  • never-if(测试条件。如果为真则不运行作业)
  • 自定义钩子(提交前、提交后、推送前...)
  • 秘密(存储变量而不显示它们)
  • 自定义shell(bash、fish、zsh...)
  • 自定义输出颜色

依赖关系

~4–15MB
~147K SLoC