Skip to content

Enzonic CI

CI สำหรับ repository บน GitHub ของคุณ บน runner ของ Enzonic

Enzonic CI รันการทดสอบและการ build ของคุณทุกครั้งที่มี push และ pull request โดยแต่ละงานทำงานใน sandbox ของตัวเองบน Linux runner ที่ Enzonic ดูแลเอง ล็อกสด แคชของ dependency และ artifact อยู่บนบัญชีและแพ็กเกจเดียวกับ Deploy และ Databases

รวมอยู่ในทุกแพ็กเกจ รวมถึงแพ็กเกจฟรีด้วย นาที CI, jobs ที่ทำงานพร้อมกัน และระยะเวลาเก็บข้อมูล มาพร้อมกับแพ็กเกจของคุณ

Enzonic CI: pipeline ของ repository สามรายการพร้อมการรันล่าสุด และคำอธิบายปัญหาการกำหนดค่า

เร็วกว่า GitHub Actions บน workflow เดียวกัน

workflow เดียวกันรันบนทั้งสองแพลตฟอร์ม: job Node ที่ใช้ npm ci และชุดทดสอบ vitest กับ job Go ที่ใช้ go test ค่าที่ต่ำกว่าดีกว่า

ขั้นตอนEnzonic CIGitHub Actions
ทั้งการรัน ตั้งแต่ push จนทุก job เสร็จ (cache ที่อุ่นแล้ว)37 วิ
Checkout1 วิ
npm ci ที่มี cache อุ่นแล้ว3 วิ
go test ที่ cache ยังเย็นอยู่20 วิ
Go job ตั้งแต่เริ่มจนจบ (cache ที่อุ่นแล้ว)11 วิ

จุดที่เรายังช้ากว่า: npm ci ครั้งแรกหลังมีการเปลี่ยน lockfile ใช้เวลา 6.8 วิ ในขณะที่ GitHub ใช้ 4 วิ เพราะทุกไฟล์ที่ npm แตกออกมาต้องผ่าน sandbox ของ job ส่วนการรันถัดไปทุกครั้งที่ใช้ lockfile เดิมใช้เวลา 0.09 วิ

วัดเมื่อ 1 พฤศจิกายน 2569 ด้วยไฟล์ .github/workflows/ci.yml เดียวกันบนทั้งสองแพลตฟอร์ม (GitHub บน ubuntu-latest) ใน benchmark repository ค่ามัธยฐานจาก 3 การรัน หน่วยเป็นวินาที การรันแบบอุ่นใช้ cache ของแต่ละแพลตฟอร์ม ค่าแบบเย็นของ GitHub มาจากการรันครั้งแรกเพียงครั้งเดียว

การกำหนดค่าที่คุณคุ้นเคยอยู่แล้ว

เขียน .enzonic/ci.yml หรือใช้ workflow ของ GitHub Actions ต่อได้: Enzonic CI รันชุดย่อยที่รองรับของ .github/workflows และแจ้งสิ่งที่รันไม่ได้ เช่น action ที่ไม่รองรับ runner ของ Windows หรือ macOS และ reusable workflow พร้อมข้อความอธิบาย

อะไรที่เริ่มการรัน

  • Push และ tag
  • Pull request
  • ตารางเวลา
  • การรันด้วยตนเองจากคอนโซล และการรันที่เริ่มจาก API

งานรันบน Linux runner แต่ละงานได้ gVisor sandbox ของตัวเอง โดยไม่สามารถเข้าถึงเครือข่ายส่วนตัวได้

.enzonic/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:

jobs:
  test:
    image: node:22-bookworm-slim
    services:
      postgres:
        image: postgres:17-alpine
        env:
          POSTGRES_PASSWORD: postgres
    env:
      DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
    steps:
      - name: Install
        run: npm ci
      - name: Test
        run: npm test

ตัวอย่าง เอกสาร CI reference ในเอกสารประกอบจะแสดงทุกคีย์และ action ที่รองรับ

ทุก push และ pull request อยู่ในรายการเดียว

การรันของทุก repository ที่เชื่อมต่อ พร้อมสถานะ event branch commit และระยะเวลา รายการจะรีเฟรชขณะมีงานกำลังทำงาน และแต่ละการรันจะรายงานผลการตรวจสอบบน GitHub

Enzonic CI: การรันของ pipeline ทุกตัว พร้อมสถานะ branch commit และระยะเวลา

ทำอะไรได้บ้าง

Matrix build และ job dependency
แบ่งงานเป็นหลาย job กระจายงานตาม matrix และเรียงลำดับ job ด้วย needs
Service container
เริ่ม Postgres หรือ service อื่นควบคู่กับ job service จะเข้าร่วมเครือข่ายของ job ตลอดระยะเวลาการรัน
หนึ่ง sandbox ต่อหนึ่ง job
แต่ละ job รันใน gVisor sandbox ของตัวเองบนเครือข่ายของตัวเอง โดยไม่สามารถเข้าถึงเครือข่ายส่วนตัวได้
ล็อกสดและ artifact
ติดตามแต่ละขั้นตอนขณะที่กำลังรัน รันงานที่ล้มเหลวอีกครั้ง และดาวน์โหลด artifact ได้ตราบเท่าที่แพ็กเกจของคุณเก็บไว้
Pull request จาก fork อย่างปลอดภัย
การรันสำหรับ pull request จาก fork จะไม่ได้รับ secret เป็นค่าเริ่มต้น
แก้ไข job ที่ล้มเหลว
Enzica ผู้ช่วยของ Enzonic อ่านล็อกของ job ที่ล้มเหลวได้ และเสนอการแก้ไขให้คุณตรวจสอบก่อนมีการเปลี่ยนแปลงใดๆ

แคช dependency

แคชเก็บแยกตามแต่ละ repository ภายในขนาดแคชของแพ็กเกจคุณ

  • npm
  • pnpm
  • Yarn
  • Bun
  • pip
  • Go
  • Cargo
  • Maven
  • Gradle

ขีดจำกัด CI ของแต่ละแพ็กเกจ

นาที CI รีเซ็ตทุกเดือนและนับต่อหนึ่ง job ที่เสร็จสิ้น แพ็กเกจแบบชำระเงินเพิ่มนาที งานคู่ขนาน แคชที่ใหญ่ขึ้น และระยะเวลาเก็บที่นานขึ้น

แพ็กเกจฟรีฟรีStarterUS$5 ต่อเดือนProUS$10 ต่อเดือนGrowthUS$19 ต่อเดือนBusinessUS$29 ต่อเดือน
นาที CI3,000 ต่อเดือน5,000 ต่อเดือน6,000 ต่อเดือน15,000 ต่อเดือน60,000 ต่อเดือน
งานที่ทำพร้อมกัน2461020
เวลาสูงสุดต่อ job360 นาที360 นาที360 นาที480 นาที720 นาที
แคช dependency2 GB5 GB10 GB20 GB50 GB
artifact ที่เก็บไว้90 วัน90 วัน90 วัน180 วัน400 วัน
ล็อกที่เก็บไว้14 วัน30 วัน30 วัน60 วัน90 วัน
  • ส่วนลด 50% สำหรับเดือนแรกที่ชำระเงิน
  • ส่วนลด 25% ทุกเดือนเมื่อมีแพ็กเกจเกม Enzonic แบบเสียเงิน

ราคาเป็นดอลลาร์สหรัฐ แพ็กเกจแบบเสียเงินจะต่ออายุทุกเดือนจากยอดคงเหลือ Enzonic ของคุณ หรือด้วยบัตรเมื่อยอดคงเหลือหมด แพ็กเกจฟรีจะไม่ขอบัตรเลย คอนโซลจะแสดงขีดจำกัดของแพ็กเกจปัจจุบันของคุณเสมอ

เปรียบเทียบทุกขีดจำกัดบน enzonic.dev

ทุนสนับสนุน Cloud

เวลา Pro หรือ Business ฟรีและเครดิต Cloud สูงสุด US$500 สำหรับผู้ที่สร้างงานให้ผู้อื่น

  • Pro หรือ Business เป็นเวลา 3, 6 หรือ 12 เดือน
  • เครดิต Cloud สูงสุด US$500 ในยอดคงเหลือ Enzonic ของคุณ
  • เงินอุดหนุนหนึ่งรายการครอบคลุม Deploy, Databases, CI และขีดจำกัด Rapidfile ของแพ็กเกจ
  • มีคนอ่านคำขอ และมักตอบภายในไม่กี่วัน

สมัครด้วยแบบฟอร์มบน enzonic.dev เพียงมีบัญชี Enzonic ฟรีก็พอ และไม่ต้องใช้บัตร

  • โอเพนซอร์ส
  • นักเรียนนักศึกษา
  • องค์กรไม่แสวงหากำไร
  • สตาร์ทอัพ
  • ผู้สอน
  • Hackathons

คำถาม

มักจะไม่ต้อง Enzonic CI อ่าน .enzonic/ci.yml หรือชุดย่อยที่รองรับของ .github/workflows ขั้นตอนที่รันไม่ได้ เช่น runner ของ Windows หรือ macOS และ reusable workflow จะถูกรายงานพร้อมข้อความที่ชัดเจน แทนที่จะล้มเหลวอย่างเงียบๆ

เชื่อมต่อ repository แล้วปล่อยให้ push ถัดไปรันได้เลย

คุณจะ Deploy แอป โฮสต์ฐานข้อมูล หรือไฟล์อัปโหลดของแอปด้วยหรือไม่?