−25%

በWindows ዓመታዊ ክፍያ ላይ፣ እስከ ኦክቶበር 31። ዕቅዶችን ይመልከቱ

EQVPS
ጀምር

ለCI የሚሆን sandbox፦ በእያንዳንዱ ሩጫ ከአንድ ሳንቲም ባነሰ ዋጋ የተገለሉ ሙከራዎች

የማያምኑትን ኮድ ሙከራዎች — ከማያውቁት ሰው የመጣ pull request፣ በራስ-ሰር የተፈጠረ patch — ከሩጫው በኋላ በሚሰረዝ አዲስ microVM ውስጥ ያሂዱ። በሰከንድ የሚከፈል ሂሳብ፣ ለPython እና TS SDK፣ እና ስለ በአንድ ጊዜ የማሄድ ገደቦች ግልጽ መረጃ።

በራስ የሚስተናገዱ የCI runners አንድ የማይመች ባህሪ አላቸው፦ ሁሉንም ያስታውሳሉ። cache፣ tokens፣ አንድ ሰው ባለፈው ፀደይ "ለጊዜው" ያከለው የdeploy ቁልፍ። ለራስዎ branches ይህ ችግር የለውም። ችግሩ የሚጀምረው ስሙን ሰምተው ከማያውቁት ሰው pull request ሲመጣ ነው — ወይም ገና ማንም ያላነበበውን patch ከጻፈው የራስዎ AI ኤጀንት።

ንጹሁ መልስ ለእያንዳንዱ ሩጫ አንድ ማሽን ነው። clone ያድርጉ፣ ይጫኑ፣ ይሞክሩ፣ ማሽኑን ይጣሉ።

ሩጫ ምን ይመስላል

sandbox በአንድ ሰከንድ ገደማ ከPython 3.12፣ Node.js 22፣ git እና curl ጋር የሚነሳ Firecracker microVM ነው። ወደ ውጭ የሚወጣ ኢንተርኔት ይሰራል፣ ስለዚህ git clone እና pip install -r requirements.txt እንደተለመደው ይሰራሉ። ወደ ውስጥ የሚገቡ ports የሉም — እየሄደ ሳለ ምንም ነገር ወደ የሙከራ አካባቢው መገናኘት አይችልም።

ከCI ስራ አንጻር ሙሉ ሂደቱ አጭር script ነው። ከማንኛውም የCI ስራ ሊጠራ የሚችለው የPython SDK ስሪት ይኸውና፦

import os, sys
from eqvps import Sandbox

repo, ref = os.environ["REPO_URL"], os.environ["PR_SHA"]

with Sandbox.create(tariff="standard", ttl=1800) as sb:
    sb.exec(f"git clone {repo} /root/app && cd /root/app && git checkout {ref}", timeout=55)
    sb.exec("cd /root/app && pip install -r requirements.txt", timeout=55)
    task = sb.exec("cd /root/app && python3 -m pytest -q", background=True)
    result = task.wait(on_output=lambda out, err: print(out, end=""))
sys.exit(result.exit_code or 0)

token በCI ሚስጥሮችዎ ውስጥ EQVPS_API_KEY በሚል ስም ይቀመጣል። ከCIዎ ሌላ ምንም ነገር — የdeploy ቁልፎችም ሆኑ የክላውድ ምስክርነቶች — ወደ sandbox አይገባም። የwith ብሎኩ ሲያልቅ sandbox ይሰረዛል፣ ስራው በመሀል ቢበላሽም እንኳ።

የሙከራው ሩጫ ራሱ የጀርባ ስራ ነው፣ ምክንያቱም አንድ synchronous ትዕዛዝ በ55 ሰከንድ ይቆማል። የጀርባ ስራ እየሰራ ውጤቱን ይልካል፣ እና እስከ sandbox TTL ድረስ ሊቀጥል ይችላል — እዚህ የተቆለፈ ሙከራ ሂሳብ እንዳያሳብጥ 30 ደቂቃ ተቀምጧል።

በእውነት የሚያጋጥሙዎት ገደቦች

ስለእነሱ ግልጽ መሆን ሙሉ ከሰዓት ያድንልዎታል።

በአንድ ጊዜ ማሄድ። አንድ መለያ 20 sandboxes ሊኖረው ይችላል፣ ነገር ግን በአንድ ጊዜ የሚሄዱት 2 ትዕዛዞች ብቻ ናቸው። ለCI ይህ በእውነት ትይዩ የሚሄዱ ሁለት ስራዎች ናቸው። በአንድ ጊዜ የመጡ አስር PRs ወረፋ ይይዛሉ። pipelineዎ ሙከራዎችን ለ16 workers የሚከፋፍል ከሆነ፣ ለዋናው pipeline ይህ ትክክለኛ መሳሪያ አይደለም — እሱን በVPS ላይ ባሉ የራስዎ runners ያቆዩት፣ sandboxesን ደግሞ ለማይታመነው መስመር ይጠቀሙ።

ውስጥ containers የሉም። Docker ከsandbox ጋር አይመጣም። የPostgres container የሚያስፈልጋቸው unit እና integration ሙከራዎች እንዳሉ አይሰሩም፤ በSQLite ወይም በማህደረ ትውስታ ውስጥ ባለ የውሸት ነገር የሚሰሩ ሙከራዎች ግን ይሰራሉ።

ፋይሎች። በAPI መስቀልና ማውረድ በአንድ ፋይል እስከ 5 MB ነው። archive ከመስቀል ይልቅ ኮዱን በsandbox ውስጥ በgit ያምጡ።

ስንት ያስከፍላል

ለታሪፉ vCPU እና RAM በሰከንድ ይከፍላሉ፣ ቢያንስ 60 ሰከንድ፣ ከቅድመ ክፍያ ቀሪ ሂሳብ — ያለ ምዝገባ ክፍያ።

ሩጫታሪፍግምታዊ ወጪ
Lint + unit ሙከራዎች፣ 1 ደቂቃsmall (0.5 vCPU, 1 GB)$0.0006
ሙሉ ስብስብ፣ 3 ደቂቃstandard (1 vCPU, 2 GB)$0.0033
Build + ሙከራዎች፣ 10 ደቂቃplus (2 vCPU, 4 GB)$0.022

በእነዚህ ዋጋዎች አስደሳቹ ጥያቄ ወጪው ሳይሆን ሙከራዎችዎ ባስቀመጡት ጊዜ ውስጥ ያልቃሉ ወይ የሚለው ነው። ከዝግተኛው የተሳካ ሩጫዎ ትንሽ በላይ ለTTL ቦታ ይስጡ።

ምክንያታዊ ክፍፍል

የእኛ ምክር፦ የሚታመኑ branchesን በፈጣኑ፣ cache ባለው runnerዎ ላይ ያቆዩ። እርስዎ ያልጻፉትን ሁሉ — forks፣ የውጭ አስተዋጽዖ አበርካቾች፣ በኤጀንቶች የተፈጠሩ patches — መጀመሪያ በsandbox ውስጥ ያሳልፉ። የsandbox ሩጫው ከተሳካ እና አንድ ሰው diffን ከተመለከተ፣ ወደ ታማኙ pipeline ያሳድጉት።

በዚህ መንገድ ፍጥነትና cache የሚያስፈልጉበት አንድ መስመር፣ ንጹህ ማሽን የሚያስፈልግበት ሌላ መስመር ይኖርዎታል — አንድን መሳሪያ ሁለቱንም እንዲሆን ሳያስገድዱ።

በsandbox መግቢያ እና በየግንኙነት መመሪያ ይጀምሩ — አዲስ መለያዎች የ$1 የsandbox ጊዜ ያገኛሉ፣ ይህም ለጥቂት መቶ አጭር ሙከራዎች ይበቃል። ከላይ ጥቅም ላይ የዋለው እያንዳንዱ ዘዴ በSDK ማጣቀሻ ውስጥ አለ፣ ትክክለኛዎቹ የሂሳብ ደንቦች ደግሞ በsandbox ገደቦችና ሂሳብ ውስጥ።

ተዛማጅ፦ ለኮድ ግምገማና ለPR ፍተሻ የሚሆን sandbox እና ለAI ወኪሎች sandbox።

ለማሰማራት ዝግጁ ኖት? በክሪፕቶ ይክፈሉ፣ KYC የለም — በአንድ ደቂቃ ገደማ ቀጥታ።

አሁን ያሰማሩ →

FAQ

የማይታመኑ pull requests በራሴ self-hosted runner ላይ ለምን አላሂድም?

self-hosted runner በስራዎች መካከል ሁኔታን ያስቀምጣል፣ እና ብዙውን ጊዜ የdeploy ቁልፎች ወይም የክላውድ ምስክርነቶች ይይዛል። ከማያውቁት ሰው የመጣ pull request እነዚህን በአንድ እርምጃ ሊያነብ ይችላል። sandbox ግን ሁልጊዜ ንጹህ ሆኖ ይጀምራል፣ ከሚሞከረው ኮድ በስተቀር ምንም አይዝም።

አንድ ሙከራ ከ55 ሰከንድ በላይ ሊሄድ ይችላል?

አዎ። የ55 ሰከንዱ ገደብ ለአንድ synchronous ትዕዛዝ ነው። የሙከራ ስብስቡን እንደ የጀርባ ስራ ያስጀምሩ፣ ውጤቱን በየጊዜው ይመልከቱ፣ የsandbox የህይወት ዘመን እስኪያልቅ ድረስ ሊሄድ ይችላል — ለጊዜያዊ sandbox እስከ 24 ሰዓት።

ስንት ሙከራዎች በአንድ ጊዜ ሊሄዱ ይችላሉ?

በአንድ መለያ እስከ 20 sandboxes፣ ነገር ግን በአንድ መለያ በአንድ ጊዜ የሚሄዱት 2 ትዕዛዞች ብቻ ናቸው። ለCI ይህ ማለት በእውነት በአንድ ጊዜ የሚሄዱ ሁለት ስራዎች ማለት ነው፤ የቀሩት ወረፋ ይጠብቃሉ። ሰፊ ትይዩ መከፋፈል ከፈለጉ፣ በVPS ላይ ያሉ የrunners ቡድን የተሻለ ይሆናል።

በsandbox ውስጥ Docker አለ?

sandbox ከPython 3.12፣ Node.js 22፣ bash፣ git እና curl ጋር ይመጣል፤ ጥገኛዎችን በpip ወይም npm ይጭናሉ። Docker አልተካተተም — ሙከራዎችዎ containers የሚያስነሱ ከሆነ፣ በVPS ላይ ባለ runner ያሂዷቸው።

አንድ ሩጫ ስንት ያስከፍላል?

በሰከንድ፣ ቢያንስ 60 ሰከንድ፣ ለታሪፉ vCPU እና RAM። በstandard ታሪፍ (1 vCPU፣ 2 GB) የሶስት ደቂቃ ሩጫ ወደ $0.0033 ገደማ ያስከፍላል።

አስተያየቶች

እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።

አስተያየት ይተዉ

አስተያየቶች ከመታየታቸው በፊት ይጣራሉ።