GitHubi rakendus
Käivita käivitusi pull request'i kommentaarist lihtsas keeles ja saa üks automaatselt uuenev kommentaar ja kontrollkäivitus tagasi.
Autonomy GitHubi rakendus muudab pull request'i kommentaari käivituseks. Mainige @autonomy koos sellega, mida soovite testida, ja Autonomy tuvastab testjuhtumid, sihtmärgi ja platvormid ning raporteerib kohapeal tagasi — üks kommentaar, mida ta pidevalt uuendab, ja üks kontrollkäivitus.
See on vestlusliides. Pipeline'i kaudu käivitatud käivituste jaoks töövoofailist vaata GitHub Actions. Need kaks eksisteerivad kõrvuti: kasuta Actions'it käivituste jaoks, mis peaksid toimuma igal push'il, ja rakendust nende jaoks, mida ülevaataja palub.
Seadistus
Enne alustamist
- Paigalda Autonomy GitHubi rakendus hoidlatele, mida soovid testida.
- Oma vähemalt üks testjuhtum, mis käivitub puhtalt eelvaate või staging'u sihtmärgi vastu.
- Otsusta hoidla vaikimisi sihtmärk, nii et paljal käsul on midagi käivitada.
- Töölaual ava Settings → Integrations ja ühenda GitHub.
- Autoriseeri rakendus organisatsiooni või konto jaoks ja vali hoidlad.
- Anna nõutud õigused: Checks (lugemine ja kirjutamine), Pull requests (lugemine ja kirjutamine), Contents (lugemine), Deployments (lugemine).
- Valikuline, kuid soovitatav — GitHub Auto-Trigger Defaults all sea hoidlale vaikimisi sihtmärk. Hoidla saab vaikimisi olla kas üks testjuhtum või üks testiplaan, mitte mõlemad.
- Kommenteeri ükskõik millisel pull request'il
@autonomy help, et kinnitada rakenduse kuulamist.
Käivituse alustamine
Mainige @autonomy või alustage rida /autonomy-ga, millele järgneb see, mida käivitada:
@autonomy test the checkout flow against the Vercel preview
@autonomy run plans "Signup", "Checkout" on staging and preview
@autonomy test this PR using https://deploy-preview-128.example.com
@autonomy rerun only the failed scenarios
@autonomy helpAutonomy parsib kommentaari esmalt deterministliku grammatikaga. Kui grammatika ei suuda tuvastada, milliseid testjuhtumeid mõtlesite, langeb see tagasi keelemudelile, mis peab valima sinu tööruumis tegelikult olemas olevate testjuhtumite ja keskkondade seast.
Selgesõnalised alistamised
Kõik, mida grammatika otse tunneb, möödub mudelist:
| Alistamine | Näide | Mõju |
|---|---|---|
plan: / plans: | plans:"Signup", "Checkout" | Nimetab käivitatavad testjuhtumid või testiplaanid. Jutumärkides nimed ilma eessõnata loetakse testiplaanide nimedeks. |
env: / environment: / environments: | env:staging | Sihib nimetatud keskkondi. |
url: | url:https://preview.example.com | Selgesõnaline HTTPS-sihtmärk. |
platform: / platforms: | platform:web,ios | Piirab käivituse konkreetsetele platvormidele. |
Valikulised algustegevussõnad — test, run, rerun, qa, check — loevad loomulikult ja parser ignoreerib neid. Samuti eessõnad on, in, against ja using enne keskkonna nime.
Platvorminimed on aliased: browser, chrome, firefox, safari ja desktop tähendavad kõik web; iphone ja ipad tähendavad iOS; mobile tähendab iOS ja Android.
Kaks fraasi on erilised. preview sihib pull request'i viimast eelvaate juurutust. rerun … failed või only … failed käivitab uuesti ainult viimati ebaõnnestunud stsenaariumid.
Kuidas sihtmärk valitakse
Kui mitu allikat saaksid sihtmärki anda, rakendab Autonomy selle eelisõiguse:
- Selgesõnaline URL käsus.
- Nimetatud keskkond käsus.
- Pull request'i eelvaate juurutus, kui paluti
preview. - Keskkond, mille harufilter vastab PR-i peaharule.
- Hoidla vaikimisi sihtmärk.
- Tööruumi vaikimisi sihtmärk.
- Testjuhtumi enda vaikimisi sihtmärk.
Mida saad tagasi
Üks pull request'i kommentaar, mis luuakse käsu vastuvõtmisel ja mida uuendatakse kohapeal käivituse edenedes — mitte kunagi uut lõime iga uuenduse kohta. See sisaldab arusaadud käsku, küsijat, hinnangulist krediidikulu ja maatrikstabelit testjuhtum × sihtmärk × platvormid × olek, koos süvalingiga iga käivituse tõenditele. Kui testjuhtumil on API-vastavus konfigureeritud, lisatakse vastavuse tulemus.
Üks kontrollkäivitus nimega Autonomy QA: <kokkuvõte> — näiteks Autonomy QA: 2 passed, 1 failed of 3. See liigub läbi queued → in_progress → completed ja lõpeb:
success— kõik õnnestus.failure— vähemalt üks käivitus ebaõnnestus või esines täitmisviga.timed_out— käivitus ületas oma täitmise ajalõpu.cancelled— käivitused tühistati.neutral— käsk lükati tagasi: parsimatu, mitmetähenduslik, ületas hajutuslimiti või pärineb volitamata kommenteerijalt.
Tagasilükkamised lõpevad tahtlikult neutral-ina. Vigane kommentaar ei peaks liitmist blokeerima. Reaalsed tõrked lõpevad failure-iga ja blokeerivad liitmist harude kaitse all.
Kontrollkäivitusel on kaks tegevusnuppu: Rerun failed scenarios ja Rerun all plans. GitHubi natiivne uuesti käivitamise juhtelement töötab samuti.
Piirangud ja kaitseraamistik
Loomuliku keele rada on teadlikult piiratud:
- Käivitusi saavad algatada ainult kaastöötajad. Kommenteerija peab olema hoidla omanik, liige või kaastöötaja. Robotite kommentaare ignoreeritakse täielikult.
- Mudel ei saa sihtmärke välja mõelda. See valib talle edastatud kandidaattestjuhtumite ja -keskkondade seast ning iga URL, mille ta väljastab, peab sinu kommentaaris sõna-sõnalt esinema.
- Tootmine on kaitstud. Keskkond, mille nimi näeb välja nagu tootmine, ei valita kunagi, kui sa seda ise ei sisestanud.
- Sihtmärgid peavad olema avalik HTTPS. Tagasilingiaadressid, privaatsed IP-vahemikud,
.localhostid ja manustatud mandaatidega URL-id lükatakse tagasi. - Madal kindlustunne keeldutakse. Kui mudel ei ole piisavalt kindel, mida mõtlesid, vastab Autonomy süntaksisoovitusega, mitte ei arva.
- Kommentaari tekst on ebausaldusväärne. See edastatakse mudelile andmetena, mitte juhistena.
- Hajutus on piiratud 8 käivitusega päringu kohta. Käsk, mis laieneb sellest kaugemale, lükatakse tagasi, mitte ei kärbita.
Pull request'i avamine iseenesest ei alusta käivitust. Käivitus algab siis, kui keegi kommenteerib või kui konfigureeritud päästik käivitub.
Käivitamine CI-st või oma tööriistadest
Sama koondpäringu pipeline on saadaval REST API kaudu organisatsiooni API-võtmega, millel on autonomy:runs:write skoop.
/api/run-requests1{2 "request": "test the checkout flow against https://preview.example.com"3}1{2 "requestId": "req_...",3 "status": "queued"4}Saad saata sama loomuliku keele request stringi või struktureeritud keha väljadega planIds, environmentSlugs, urls ja platforms. Lisa Idempotency-Key päis, et korduvkättetoimetamine ei tekitaks topeltkäivitust.
Tulemuse küsimine:
/api/run-requests/status?id=<requestId>Tõrkeotsing
Kommentaari peale ei juhtu midagi
Kontrolli, et rakendus on sellele hoidlale paigaldatud, et oled omanik, liige või kaastöötaja ja et mainimine on @autonomy või rida algab /autonomy-ga. Kommenteeri @autonomy help, et kinnitada rakenduse sündmuste vastuvõtmist.
Kommentaar ütleb, et ei suutnud testjuhtumit tuvastada
Nimeta see selgesõnaliselt plans:"Exact Name" abil või sea hoidla vaikimisi sihtmärk GitHub Auto-Trigger Defaults all, nii et paljal käsul on midagi käivitada.
Käivitus sihis vale keskkonda
Käi läbi ülaltoodud eelisõiguste loend. Kommentaaris olev url: või env: alistab alati kõik; kui sa seda ei andnud, tegi seda tõenäoliselt harufilter või hoidla vaikimisi sihtmärk.
Kontroll on punane, aga midagi pole katki
Vaata järeldust. neutral tähendab, et käsk lükati tagasi, mitte et toode ebaõnnestus — loe kommentaari kehast põhjust. Ainult failure ja timed_out näitavad tegelikku käivituse tulemust.