Watch Star

khs1994-php / pcitPHPMIT

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
国内首个基于 GitHub Checks API 使用 PHP 编写的运行于 Docker 之上的由 Tencent AI 驱动的 CI/CD 系统 https://github.com/apps/khsci
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md 7.46 KB

PCIT (PHP CI TOOLKIT) 使用 PHP 编写的持续集成工具

GitHub stars PHP from Packagist GitHub (pre-)release Build Status codecov

国内首个基于 GitHub Checks API 使用 PHP 编写的运行于 Docker 之上的由 Tencent AI 驱动的开源云原生 CI/CD 系统

什么是持续集成 Continuous Integration (CI)?

持续集成 (CI) 是一种软件开发实践,即团队开发成员经常集成他们的工作,而不是在开发周期结束时进行集成,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

持续集成 (CI) 的目标是通过以较小的增量进行 开发测试 来构建更健康的软件。

ci

作为一个持续集成系统,PCIT 通过自动 构建测试 代码变更来支持团队的软件开发过程,为代码变更的构建状态提供即时的反馈。PCIT 还可以通过管理部署和通知来自动化开发过程的其他部分。

当您提交代码到 Git,PCIT 会进行构建,将您的 Git 仓库克隆到一个容器环境中,并执行一系列构建和测试代码的任务。如果其中一项或多项任务失败,则认为构建失败。如果没有任何任务失败,构建被认为通过,PCIT 可以将您的代码部署到 Web 服务器、应用程序主机或容器集群中。

PCIT 还可以使您的 交付工作 的其他部分实现自动化。这意味着您可以使用构建阶段相互依赖工作,设置通知,在构建之后准备部署以及执行许多其他任务。

什么是云原生 Cloud Native?

Cloud native computing uses an open source software stack to be:

  1. Containerized. Each part (applications, processes, etc) is packaged in its own container. This facilitates reproducibility, transparency, and resource isolation.
  2. Dynamically orchestrated. Containers are actively scheduled and managed to optimize resource utilization.
  3. Microservices oriented. Applications are segmented into microservices. This significantly increases the overall agility and maintainability of applications.

PCIT 架构

PCITPHP 后端Webhooks Server + Daemon CLI) + GitHub App + CLI + 开放平台插件API)四部分组成

  • Webhooks Server 接收 Git 数据

  • Daemon CLI 后端常驻 (守护) 程序,解析 Git 数据,在 Docker 单机或集群(Swarm、Kubernetes)中执行构建、测试、容器化部署的自动化过程。

  • CLI 提供各种实用的功能,例如 命令行操作 GitHub,命令行调用 Tencent AI 开放能力,等

  • 开放平台 包含用于功能扩展的 插件RESTFul API,与开发者一道构建 PCIT 生态系统

使用方法

  • 点击 PCIT-CE 安装 PCIT CE GitHub App

  • Git 仓库根目录包含 .pcit.yml 来配置 CI 规则(需要私有部署 PCIT)。

pipeline:

  install:
    image: khs1994/php:7.2.10-fpm-alpine
    commands:
      - composer install  

  script:
    image: khs1994/php:7.2.10-fpm-alpine
    commands:
      - vendor/bin/phpunit

  after_success:
    image: bash
    commands:
      - echo "build is success"    

若想查看构建的聚合页面(详情,管理),请登录 https://ci.khs1994.com/login

特色

  • 无账号体系,采用(OAuth2)保障用户数据安全

  • 不提供繁杂的图形化配置界面,一切 CI 规则均可通过 .pcit.yml 文件定义

尝试 Demo (PCIT CE)

由于项目云计算资源有限,PCIT 提供了 PCIT 社区版(CE) 以供用户体验 Demo。暂时不支持 持续集成 功能(公有云),仅支持 Issues 中英互译

安装 GitHub App

可以通过 捐赠 PCIT 项目,资助本项目购买云计算资源以支持社区版的持续集成功能。

私有部署 (PCIT EE)

仅 PCIT EE (私有云)支持全部的 CI 功能(构建 测试 部署)。

你可以通过以下方法私有部署 PCIT EE :

# install khs1994-docker/lnmp

$ git clone https://github.com/khs1994-docker/lnmp.git ~/lnmp

# 中国镜像
# $ git clone https://gitee.com/khs1994-docker/lnmp.git ~/lnmp

$ composer create-project khs1994/pcit ~/lnmp/app/pcit

$ cd lnmp

# read lnmp/pcit/README.md, then exec

$ ./lnmp-docker pcit-up

更多信息请查看 https://github.com/khs1994-php/pcit/blob/master/docs/install/ee.md

开发团队支持

扫码关注 PCIT 微信公众平台,寻求 PCIT 团队支持。

PCIT 子项目

致谢

GitHub 上的其他 CI/CD 项目

搜索帮助