Первая открытая облачная система CI/CD, основанная на GitHub Checks API, написанная на PHP и работающая в контейнере Docker с использованием технологий искусственного интеллекта от Tencent
Активное развитие Некоторые описания или функции являются частью дорожной карты, которая ещё должна быть реализована. Пожалуйста, отметьте Star
или следите за официальным WeChat-каналом для получения последних новостей о PCIT.
Подпишитесь на официальный WeChat-канал автора проекта для получения последних новостей
Нажмите https://ci.khs1994.com/github/khs1994-docker/lnmp, чтобы просмотреть интерфейсы функций PCIT.
Проект предназначен для разработчиков, интересующихся CI/CD (особенно PHP-разработчиков). Приглашаем вас принять участие в разработке PCIT.
Вы можете просто выполнять push
, а остальное сделает PCIT. Тестирование и деплой будут выполнены нами.
Портативная система CI/CD PCIT
Непрерывная интеграция (CI) — это практик разработки программного обеспечения, при которой члены команды часто интегрируют свои работы, а не делают это в конце цикла разработки. Каждый участник команды выполняет интеграцию как минимум один раз в день, что может привести к многократной интеграции за день. Каждая интеграция проверяется автоматизированной сборкой (включая компиляцию, публикацию, автоматическое тестирование), чтобы尽早发现集成错误。Цель непрерывной интеграции (CI) заключается в том, чтобы строить более здоровое программное обеспечение через разработку и тестирование в меньших порциях.
Как система непрерывной интеграции, PCIT автоматически собирает и тестирует при каждом изменении кода, предоставляя мгновенную обратную связь о состоянии сборки. PCIT также автоматизирует другие процессы разработки программного обеспечения, такие как управление развертыванием и уведомлениями.
Когда разработчик отправляет изменения кода в Git, PCIT клонирует Git-репозиторий в контейнерной среде и выполняет серию задач по сборке и тестированию кода. Если одна или несколько задач проваливаются, сборка считается неудачной. Если ни одна задача не провалится, сборка считается успешной. В то же время PCIT может развернуть код на веб-серверах, хостах приложений или кластерах контейнеров.
PCIT состоит из распределённого PHP-заднего плана (1+N) (Webhooks Server
+ Daemon CLI
+ Runner(N)
) + GitHub App + CLI + открытой платформы (плагины
, API
).
В этом разделе мы рассмотрим использование PCIT после его установки для выполнения CI/CD практик. Инструкция по установке находится в следующем разделе.
1. Нажмите на PCIT-CE GitHub App для установки
2. Корневой каталог вашего Git-репозитория должен содержать файл конфигурации CI [
.pcit.yml](https://github.com/pcit-ce/pcit/tree/master/pcit_examples)
для настройки правил CI
language: php
steps:
before_install: ['echo exec init script']
install: composer install
script:
- composer test
after_success:
image: bash
if:
status: success
run:
- echo "build is success"
services:
redis:
mysql:
Для автодополнения и отображения ошибок рекомендуется использовать VS Code для редактирования файла
.pcit.yml
. Установите расширениеredhat.vscode-yaml
и добавьте следующий контент в файл.vscode/settings.json
.```diff {
".pcit.yaml",
".pcit.yml",
".pcit/**.yaml",
".pcit/**.yml"
**3.** Отправьте ваш Git-репозиторий на GitHub, и PCIT начнет выполнять серию задач, таких как сборку, тестирование и развертывание.
> Чтобы просмотреть агрегированную страницу сборки, перейдите на сайт <https://ci.khs1994.com/login>.
## Сравнение между PCIT CE и PCIT EE
В будущем PCIT может предоставлять **облачные сервисы**, чтобы разработчики могли легко и быстро использовать PCIT без необходимости самостоятельной установки. Мы называем этот вариант реализации PCIT CE.
Поэтому различие между **CE** и **EE** заключается в том, что при использовании **EE** требуется самостоятельная установка.
## Установка PCIT EE
> Благодаря решению LNMP на основе khs1994-docker/private, локальная установка PCIT также является простым процессом.
* ~~PHP~~
* ~~MySQL~~
* ~~Redis~~
* **Только** необходима установка Docker и khs1994-docker/lnmp и сайта SSL/TLS сертификата <https://github.com/Neilpang/acme.sh>```bash
# Установка Docker здесь не рассматривается подробно
# Установка khs1994-docker/lnmp
$ git clone --depth=1 https://github.com/khs1994-docker/lnmp.git ~/lnmp
# Китайская зеркальная версия
# $ git clone --depth=1 https://gitee.com/khs1994-docker/lnmp.git ~/lnmp
$ cd ~/lnmp
1. Создайте приложение GitHub в разделе Настройки > Разработчики > Приложения GitHub.
2. Включите OAuth для вашего приложения GitHub.3. Подготовьте сертификаты, включая сертификат сайта и приватный ключ приложения GitHub.
4. Измените переменные в файле ~/lnmp/pcit/.env.development
, после чего запустите PCIT.
$ ./lnmp-docker pcit-up
5. Нажмите на адрес приложения GitHub, которое вы создали ранее, https://github.com/apps/YOUR_APP_NAME, чтобы установить его.
6. Корневой каталог репозитория Git должен содержать файл .pcit.yml
.
7. Отправьте проект на GitHub и проверьте сборку в разделе "Commit".
Дополнительные шаги можно найти по адресу https://github.com/pcit-ce/pcit/blob/master/docs/install/ee.md
PCIT официально поддерживает следующие примеры проектов:
Язык | Адрес | Страница сборки |
---|---|---|
PHP | https://github.com/khs1994-php/tencent-ai | |
Node.js | https://github.com/khs1994/tencent-ai-js | |
WeChat Mini Program (Node.js) | https://github.com/docker-practice/miniprogram | |
Hexo (Node.js) | https://github.com/khs1994/khs1994.github.io | |
Bash Shell | https://github.com/khs1994-docker/lnmp |
pcit/pcit
pcit/frontend
https://github.com/topics/continuous-integration?l=php&o=desc&s=stars
https://github.com/topics/continuous-integration?o=desc&s=stars
Облачное первоначальное проектирование использует открытую программную базу данных для того, чтобы быть:1. Контейнеризированным. Каждая часть (приложение, процесс и т.д.) упакована в отдельный контейнер. Это способствует воспроизводимости, прозрачности и изоляции ресурсов. 2. Динамически управляемым. Контейнеры активно расписывают и управляют для оптимизации использования ресурсов. 3. Ориентированным на микросервисы. Приложения разделены на микросервисы. Это значительно повышает общую гибкость и поддерживаемость приложений.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.