Expo EAS
Käivita mobiilne QA automaatselt iga EAS build'i vastu ja teata tulemus seotud GitHubi hoidla kaudu.
Expo EAS integratsioon võtab vastu build'i lõpetamise webhooke EAS Buildilt. Kui build lõpeb edukalt, laadib Autonomy artefakti alla ja käivitab konfigureeritud testjuhtumi või testplaani iOS-i simulaatoril või Androidi emulaatoril. Olek teatatakse GitHubi kontrollkäivitusena (check run) commit'il, kui GitHubi hoidla on seotud.
Mida see teeb
- Võtab vastu webhooki, kui EAS build lõpeb.
- Laadib alla buildi artefakti (iOS-i jaoks
.apparhiiv, Androidi jaoks.apk). - Käivitab konfigureeritud testjuhtumi või testplaani artefakti vastu vastaval platvormil.
- Teatab tulemuse GitHubi kontrollkäivitusena commit'il, kui GitHubi hoidla on seotud.
.aab(Android App Bundle) artefakte ei saa emulaatorile installida — testitavad on ainult.apkbuild'id..aabartefakt jäetakse vahele põhjusegaartifact kind aab is not installable.- Tundmatud artefakti vormingud (mis pole
.app,.apk,.ipaega.aab) jäetakse vahele põhjusegaartifact format not recognized: <ext>. - EAS artefakti URL-id aeguvad 30 päeva pärast. Autonomy laadib artefakti alla käivitamise ajal; aegunud URL-id jäetakse vahele põhjusega
build artifact expired.
Seadistamine
Enne alustamist
- Expo konto vähemalt ühe projektiga, mis kasutab EAS Buildi.
- Vähemalt üks Autonomy testjuhtum, mis läbib mobiilse üleslaadimise vastu.
- Autonomy keskkond, mis on konfigureeritud mobiilseks testimiseks.
- Expo roboti juurdepääsuluba (robot access token), millel on õigus lugeda build'e ja projekte.
- Oleku teatamiseks: Autonomy GitHubi rakendus installitud hoidlasse.
- Ava Autonomy töölaual Settings → Integrations.
- Klõpsa Expo EAS kaardil Connect. Kleebi Expo roboti juurdepääsuluba (robot access token). Expo kasutab loapõhist autentimist — OAuth voogu pole.
- Klõpsa Link App. Autonomy kuvab Sinu kontole nähtavad Expo rakendused — vali see, mida soovid testida. Webhook registreeritakse sidumise ajal automaatselt.
- Vali vaikimisi käivitamise sihtmärgiks Test Case või Test Plan.
- Vali Environment, mille konfiguratsiooni tuleks rakendada.
- Vali, millised platvormid (iOS, Android või mõlemad) peaksid käivitama testkäivitusi.
- Tulemuste teatamiseks GitHubi kontrollina luba Report checks ja vali Linked repository. Autonomy GitHubi rakendus peab olema sellesse hoidlasse installitud.
Webhooki registreerimine
Webhook registreeritakse automaatselt rakenduse sidumisel. Kui automaatne registreerimine ebaõnnestub — näiteks selle tõttu, et juurdepääsulubal pole õigust webhooke hallata — on saadaval varuvariant (fallback):
eas webhook:create --event BUILD --url <callback-url> --secret <secret>Tagasihelistamise URL-i ja webhooki saladuse leidmiseks:
- Ava Autonomys seotud rakenduse seaded.
- Laienda Manual fallback (eas webhook:create). Kopeeri Callback URL ja Webhook secret.
- Käivita ülaltoodud käsk
eas webhook:createnende väärtustega.
Webhooki saladuse genereerib Autonomy rakenduse sidumisel. Seda kasutatakse iga sissetuleva webhooki allkirja kontrollimiseks.
Harufiltrid
Harufiltrid pole saadaval Expo EAS-i jaoks. EAS Buildi webhookid ei kanna haru nime, seega ei saa harufiltreid hinnata. Harufiltri juhtelement on töölaual peidetud ja tagarakendus lükkab Expo projektide puhul mittetühjad harufiltrid tagasi.
Buildi profiilid testitavate artefaktide jaoks
Autonomy vajab eas.json failis buildi profiili, mis loob installitavaid artefakte:
- iOS: seadista
simulatorväärtusekstrue, et luua allkirjastatud.ipaasemel.appsimulaatori build. Seadme.ipa-t ei saa simulaatorile installida. - Android: seadista
buildTypeväärtuseksapk, et luua.aabasemel.apk..aab-d ei saa emulaatorile installida.
1{2 "build": {3 "autonomy-e2e": {4 "withoutCredentials": true,5 "ios": {6 "simulator": true7 },8 "android": {9 "buildType": "apk"10 }11 }12 }13}Kuidas käivitus toimub
Kui EAS saadab BUILD webhooki olekuga finished:
- Autonomy otsib seotud rakendust Expo projekti ID järgi.
- Juurutuse konteksti (preview, production või branch) kontrollitakse rakenduse konfigureeritud trigger contexts suhtes.
- Harufiltreid ei rakendata — EAS Buildi webhookid ei kanna haru nime.
- Buildi platvormi (iOS või Android) kontrollitakse rakenduse konfigureeritud platvormide suhtes.
- Artefakti URL ja tüüp valideeritakse. Mitteinstallitavad tüübid (
.aab) ja tundmatud vormingud jäetakse vahele. - Kui artefakti URL on aegunud (>30 päeva), jäetakse sündmus vahele.
- Kui vaikimisi testi sihtmärk on konfigureeritud, loob Autonomy käivituse, kus artefakt on mobiilne sihtmärk.
Käivitus saab artefakti URL-i allikana — käivitaja (runner) laadib selle otse alla. Kuna EAS-i artefakti URL-id aeguvad 30 päeva pärast, toimub allalaadimine käivitamise ajal.
Oleku teatamine
Expol pole natiivset kontrollipinda. Autonomy ei saa tulemusi otse Expo töölauale postitada.
Tulemustest teatamiseks seo Autonomys Expo rakendusega GitHubi hoidla. Kui see on lubatud, postitab Autonomy commit'ile GitHubi kontrollkäivituse (check run) — sama mehhanismi kasutatakse Netlify ja GitHubi rakenduse puhul. 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 Expos. Töölaual kuvatakse sellisel juhul hoiatus.
EAS Workflow näide
Kui kasutad EAS Workflowsid, lisa .eas/workflows/autonomy-e2e.yml testitavate artefaktide loomiseks. Vaikimisi webhooki režiimis käivitub BUILD webhook automaatselt iga buildi lõppemisel — töövoos pole käivitamistööd (trigger job) vaja.
name: 'Autonomy E2E — My App'
on:
push:
branches:
- 'main'
pull_request:
branches:
- '*'
jobs:
build_ios:
name: Build iOS for Autonomy
type: build
params:
platform: ios
profile: 'autonomy-e2e'
build_android:
name: Build Android for Autonomy
type: build
params:
platform: android
profile: 'autonomy-e2e'
# ─── No trigger job needed ───
# The EAS BUILD webhook fires automatically when each build completes.
# Autonomy ingests the webhook, creates QA runs, and reports back.Ilmutatud käivitamiseks (webhookist möödahiilimiseks) genereeri töövoog uuesti seadistusega dispatchMode: "explicit". See lisab trigger_autonomy töö, mis teeb POST-päringu Autonomy API-le pärast build'ide lõppemist. Ilmutatud režiim nõuab kolme EAS-i saladust:
AUTONOMY_API_KEY— Autonomy programmiline API võtiAUTONOMY_TEST_PLAN_ID— Käivitatava Test Plan'i Convexi dokumendi IDAUTONOMY_ENVIRONMENT_SLUG— Autonomy keskkonna slug (nt"staging")
Seadista need käsuga:
eas secret:create --name AUTONOMY_API_KEY --value <your-api-key>
eas secret:create --name AUTONOMY_TEST_PLAN_ID --value <plan-id>
eas secret:create --name AUTONOMY_ENVIRONMENT_SLUG --value <slug>Webhooki integratsioon ja töövoo lähenemine on sõltumatud — kasuta seda, mis sobib Sinu töövooga. Webhooki tee on lihtsam (kestaskripte pole), samas kui ilmutatud töövoo tee annab kontrolli täpse aja üle, mil käivitus toimub.
Monorepo ja mitu rakendust
Ühel Expo kontol võib olla mitu rakendust. Seo iga rakendus Autonomys sõltumatult — igaüks saab oma testi sihtmärgi, keskkonna ja platvormid. Kõik seotud rakendused saavad jagada sama seotud GitHubi hoidlat oleku teatamiseks.
Tõrkeotsing
Ükski käivitus ei alga, kui EAS build lõpeb
Kontrolli järgmist:
- Expo konto on ühendatud ja näitab Autonomys olekut Active.
- Expo rakendus on seotud. Autonomy jälgib ainult seotud rakendusi.
- Rakendus on lubatud. Keelatud rakendus salvestab sündmuse, kuid jätab käivituse vahele (
project disabled). - Webhook on registreeritud. Kontrolli rakenduse seadetes jaotist Webhook — see peaks näitama Registered. Kui ei, kasuta manuaalset varuvariantat: käivita
eas webhook:createseadete paneelil oleva URL-i ja saladusega. - Buildi olek on
finished. Olekusin-progressvõierroredbuild ei käivita käivitust (deployment not ready). - Buildi kontekst vastab rakenduse konfigureeritud trigger contexts reeglitele. Mitterahuldamisel jäetakse vahele põhjusega
context <x> not enabled. - Valitud on vaikimisi testjuhtum või testplaan. Ilma selleta jäetakse sündmus vahele põhjusega
no default test target. - Build loosis allalaaditava artefakti. Kui artefakti URL-i pole, jäetakse sündmus vahele põhjusega
no build artifact.
Käivitusel ei õnnestu buildi installida
- iOS: veendu, et EAS-i buildi profiilil on
ios.simulator: true. Füüsilise seadme jaoks allkirjastatud.ipa-t ei saa simulaatorile installida. - Android: veendu, et EAS-i buildi profiilil on
android.buildType: "apk"..aab-d ei saa emulaatorile installida. Autonomy jätab.aabartefaktid vahele põhjusegaartifact kind aab is not installable.
Artefakti vormingut ei tuvastata
Kui build loob faili laiendiga, mida Autonomy ei tuvasta (pole .app, .apk, .ipa ega .aab), jäetakse sündmus vahele põhjusega artifact format not recognized: <ext>. Kontrolli EAS buildi profiili, et veenduda, et see loob standardse artefakti.
Artefakti URL on aegunud
EAS-i artefakti URL-id aeguvad 30 päeva pärast. Sündmus jäetakse vahele põhjusega build artifact expired. Käivita uus EAS build — Autonomy saab uue webhooki kehtiva URL-iga.
Pull request'ile ei ilmu kontrolli
Expol pole natiivset kontrollipinda. Oleku teatamine nõuab:
- Seotud rakenduses 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 hoidlat pole seotud, ilmuvad tulemused ainult Autonomy töölaual.