Netlify
Käivita QA automaatselt iga Netlify juurutuse eelvaate vastu ja teata tulemus seotud GitHubi hoidla kaudu.
Netlify integratsioon jälgib juurutuse eelvaateid (deploy previews) ja toodangu juurutusi webhooki kaudu. Kui juurutus jõuab olekusse ready, käivitab Autonomy konfigureeritud testjuhtumi või testplaani muutumatu juurutusepõhise püsilingi (permalink) vastu ja, kui GitHubi hoidla on seotud, teatab tulemuse GitHubi kontrollkäivitusena (check run) commit'il.
Mida see teeb
- Võtab vastu webhooki iga juurutuse oleku muutuse kohta (
deploy_created,deploy_building,deploy_succeeded,deploy_failed,deploy_request_pending). - Filtreerib juurutuse konteksti (deploy-preview, production või branch-deploy) ja haru nime järgi.
- Käivitab konfigureeritud testjuhtumi või testplaani muutumatu juurutusepõhise püsilingi URL-i vastu.
- Teatab tulemuse GitHubi kontrollkäivitusena commit'il, kui GitHubi hoidla on seotud.
- Netlifyl pole natiivset kontrollipinda — oleku teatamine toetub täielikult seotud GitHubi hoidlale.
- Harundatud PR-ide (forked PR) juurutuste puhul, mida Netlify hoiab tiimi omaniku kinnituse ootel (
deploy_request_pending), kuvatakse sündmus töölaual olekuga "pending", kuni juurutus kinnitatakse.
Miks püsilink
Autonomy sihib muutumatut juurutusepõhist püsilinki (https://<deploy_id>--site.netlify.app), mitte muutuvat harupõhist URL-i. See tagab, et QA tulemused omistatakse täpsele commit'ile — samasse PR-i tehtud uuem push ei saa muuta seda, mida käivitaja keset testi näeb. Harupõhist juurutuse URL-i (deploy_ssl_url) kasutatakse tagavarana ainult siis, kui püsilink puudub.
Seadistamine
Enne alustamist
- Netlify konto vähemalt ühe saidiga, mis loob juurutuse eelvaateid.
- Vähemalt üks Autonomy testjuhtum, mis läbib veebisihtmärgi vastu.
- Autonomy keskkond veebisihtmärgiga.
- Oleku teatamiseks: Autonomy GitHubi rakendus installitud hoidlasse, kust Netlify juurutab.
- Isemajandatava Autonomy jaoks: Convexi tagarakenduses on konfigureeritud NETLIFY_CLIENT_ID ja NETLIFY_CLIENT_SECRET.
- Ava Autonomy töölaual Settings → Integrations.
- Klõpsa Netlify kaardil Connect. Sind suunatakse Netlifyse OAuth rakendust autoriseerima.
- Tagasi Autonomys klõpsa Link Site. Autonomy kuvab Sinu ühendatud kontole nähtavad Netlify saidid — vali see, mida soovid testida.
- Vali vaikimisi käivitamise sihtmärgiks Test Case või Test Plan.
- Vali Environment, mille konfiguratsiooni tuleks rakendada.
- Jaotises Trigger contexts vali, millised juurutuse tüübid käivitavad testkäivituse — tavaliselt
preview. Lisa Branch filters, et piirata käivitusi konkreetsete harudega. - Tulemustest teatamiseks GitHubi kontrollina luba Report checks ja vali Linked repository. Autonomy GitHubi rakendus peab olema sellesse hoidlasse installitud.
- Ava pull request ja veendu, et käivitus algab, kui Netlify juurutuse eelvaade on valmis (
ready).
Kuidas käivitus toimub
Kui Netlify saadab deploy_succeeded webhooki:
- Autonomy otsib seotud saiti Netlify saidi ID järgi.
- Netlify juurutuse kontekst (
deploy-preview,production,branch-deploy) normaliseeritakse Autonomy sõnavarale:preview,productionvõibranch. - Konteksti kontrollitakse saidi trigger contexts suhtes ja haru branch filters suhtes.
- Kui vaikimisi testi sihtmärk on konfigureeritud, loob Autonomy käivituse, mis sihib muutumatut juurutusepõhist püsilingi URL-i.
Harundatud PR-ide juurutused
Kui juurutus pärineb harundatud pull request'ist (forked PR), hoiab Netlify seda tiimi omaniku kinnituse ootel ja saadab deploy_request_pending webhooki. Autonomy salvestab sündmuse olekuga "pending" — see kuvatakse töölaual kinnituse ootel olevana. Kui juurutus on kinnitatud ja õnnestub, käivitab deploy_succeeded webhook käivituse nagu tavaliselt.
Parooliga kaitstud saidid
Kui Netlify saidil on lubatud paroolikaitse (saidipõhine või juurutusepõhine), ei pääse käivitaja juurutuse eelvaateni. Möödapääsu konfigureerimiseks:
- Ava Autonomys seotud saidi seaded.
- Kleebi saidi parool väljale Preview access secret.
Autonomy süstib parooli nii, nagu Netlify kaitsemehhanism nõuab. Saladus ei lahku kunagi tagarakendusest.
Oleku teatamine
Netlify ei pakku kolmanda osapoole integratsioonidele natiivset kontrolli- ega olekupinda. Autonomy ei saa tulemusi otse Netlify töölauale postitada.
Tulemustest teatamiseks seo Autonomys Netlify saidiga GitHubi hoidla. Kui see on lubatud, postitab Autonomy commit'ile GitHubi kontrollkäivituse (check run) — sama mehhanismi kasutab GitHubi rakendus. Kontroll ilmub pull request'ile ja selle saab muuta nõutavaks olekukontrolliks harukaitse reeglites.
Tähtis: Kui Report checks on lubatud, kuid ühtegi GitHubi hoidlat pole seotud, ilmuvad tulemused ainult Autonomy töölaual — mitte pull request'il ega kuskil Netlifys. Töölaual kuvatakse sellisel juhul hoiatus.
Monorepo ja mitu saiti
Ühest GitHubi hoidlast saab juurutada mitu Netlify saiti. Seo iga sait Autonomys sõltumatult — igaüks saab oma testi sihtmärgi, keskkonna, käivituskontekstid ja harufiltrid. Kõik seotud saidid saavad jagada sama seotud GitHubi hoidlat oleku teatamiseks.
Kui Netlify saadab webhooki, sobitab Autonomy selle õige seotud saitiga Netlify saidi ID järgi.
Keskkonnamuutujad (isemajandatav)
| Variable | Required | Description |
|---|---|---|
| NETLIFY_CLIENT_ID | Yes | OAuth client ID from the Netlify OAuth application settings. |
| NETLIFY_CLIENT_SECRET | Yes | OAuth client secret from the Netlify OAuth application settings. |
Tõrkeotsing
Ükski käivitus ei alga, kui juurutuse eelvaade on valmis
Kontrolli järgmist:
- Netlify konto on ühendatud ja näitab Autonomys olekut Active.
- Netlify sait on seotud. Autonomy jälgib ainult seotud saite.
- Sait on lubatud. Keelatud sait salvestab sündmuse, kuid jätab käivituse vahele (
project disabled). - Juurutuse kontekst on saidi trigger contexts hulgas. Netlify
deploy-previewvastabpreview,productionvastabproductionjabranch-deployvastabbranch. Mitterahuldamisel jäetakse vahele põhjusegacontext <x> not enabled. - Haru vastab saidi branch filters reeglitele. Mitterahuldamisel jäetakse vahele põhjusega
branch <x> filtered. - Valitud on vaikimisi testjuhtum või testplaan. Ilma selleta jäetakse sündmus vahele põhjusega
no default test target. - Juurutus jõudis olekusse
ready. Olekusbuildingvõierrorjuurutus ei käivita käivitust (deployment not ready). - Juurutuse eelvaate URL on olemas. Kui webhook ei sisaldanud eelvaate URL-i, jäetakse sündmus vahele põhjusega
no preview URL.
Juurutus on takerdunud olekusse "pending"
Kui juurutus kuvatakse Autonomys olekus "pending" ja ei käivita kunagi käivitust, on see tõenäoliselt harundatud PR-i juurutus, mida Netlify hoiab tiimi omaniku kinnituse ootel (deploy_request_pending). Kinnita juurutus Netlifys — sellele järgneb deploy_succeeded webhook ja käivitab käivituse.
Käivitus ei pääse juurutuse eelvaateni
Juurutuse eelvaate URL võib olla blokeeritud saiditaseme paroolikaitsega. Kui käivitus ebaõnnestub paroolilehel, lisa saidi parool väljale Preview access secret.
Pull request'ile ei ilmu kontrolli
Netlifyl pole natiivset kontrollipinda. Oleku teatamine nõuab:
- Seotud saidil on lubatud Report checks.
- Valitud on Linked repository.
- Autonomy GitHub App on sellesse hoidlasse installitud.
Kui mõni neist puudub, on sündmuse aruande olek unsupported ja kontrolli ei postitata. Kui kontrollid on lubatud, kuid ühtegi hoidlat pole seotud, ilmuvad tulemused ainult Autonomy töölaual.
Dubleeritud käivitused sama juurutuse jaoks
Autonomy eemaldab duplikaadid võtme abil, mis sisaldab Netlify juurutuse ID-d ja olekut. Uuesti kohale toodud webhook ei loo teist käivitust.