Expo EAS
Käivita projekti mobiilitestid igal EAS-i buildil ja teata tulemusest GitHubi kontrollina.
Expo EAS-i integratsioon kuulab valmis EAS-i build'e. Kui build valmib, laadib Autonomy selle alla ja käivitab projekti testjuhtumi või testiplaani Androidi emulaatoris. iOS-i testimine tuleb peagi. Kui GitHubi hoidla on lingitud, ilmub tulemus commit'il GitHubi kontrollina.
Mida see teeb
- Alustab käivitusi, kui EAS-i build valmib: Androidi buildide puhul ning iOS-i buildide puhul siis, kui iOS-i testimine on saadaval.
- Paigaldab buildi ise: Androidi jaoks
.apkning iOS-i jaoks simulaatori.app, kui iOS-i testimine on saadaval. - Postitab lingitud hoidla kaudu GitHubi kontrolli
Autonomy QA. Expol endal pole kontrollide kuvamise kohta. - Registreerib rakenduse linkimisel EAS-i webhooki sinu eest.
Seadistamine
Enne alustamist
- Expo konto projektiga, mis kasutab EAS Buildi.
- Expo robotkonto juurdepääsutoken, mis saab lugeda build'e ja projekte.
- Autonomy projekt, millel on keskkond mobiilikäivituste jaoks.
- Selle projekti testjuhtum või testiplaan, mis läbib mobiilibuildi vastu.
- EAS-i buildiprofiil, mis loob paigaldatavaid build'e (vaata allpool).
- Kontrollide jaoks: hoidlasse paigaldatud Autonomy GitHubi rakendus.
- Ava Organization → Integrations → Expo EAS ja klõpsa Connect. Kleebi Expo robot access token. Expo kasutab tokeneid, mitte sisselogimist.
- Klõpsa Link app ja vali Expo rakendus, mida testida. Autonomy registreerib buildi webhooki.
- Vali jaotises Project Autonomy projekt, mille testid nendel build'idel käivituvad. Hilisem muutmine tühjendab allolevad vaikeseaded.
- Vali jaotises Default test case or plan, mis igal buildil käivitub. Loetletud on ainult projekti testjuhtumid ja testiplaanid.
- Vali jaotises Default environment projekti keskkond. Käivitused kasutavad selle väärtusi ja sisselogimisi ning rakenduseks on uus build. Ilma keskkonnata jäetakse build'id vahele.
- Vali platvormid, mille build'id käivituse alustavad.
- Kui soovid pull request'ile kontrolli, lülita sisse Post a GitHub check via linked repository ja vali GitHub repository for checks.
Buildiprofiilid
Autonomy vajab build'e, mida saab paigaldada simulaatorisse või emulaatorisse. Lisa faili eas.json profiil:
- iOS (tulekul): sea
simulatorväärtusekstrue, et saada simulaatori.appbuild. Seadme.ipafaili ei saa simulaatorisse paigaldada. - Android: sea
buildTypeväärtuseksapk..aabfaili ei saa emulaatorisse paigaldada.
1{2 "build": {3 "autonomy-e2e": {4 "withoutCredentials": true,5 "ios": {6 "simulator": true7 },8 "android": {9 "buildType": "apk"10 }11 }12 }13}Kui webhook pole registreeritud
Kui registreerimine õnnestus, näitab lingitud rakendus olekut Registered automatically. Kui token ei saa webhooke hallata, näitab see selle asemel olekut Webhook — manual setup required koos tagasikutse URL-iga:
- Klõpsa Make a new secret for this command. Autonomy loob saladuse ja täidab kogu
eas webhook:createkäsu. - Kopeeri käsk kohe. Saladust enam ei näidata; kui see kaob, loo uus ja vana lakkab töötamast.
- Käivita see oma projekti kaustas:
eas webhook:create --event BUILD --url <callback-url> --secret <secret>Harufiltrid
EAS-i buildi webhookid ei ütle, millisest harust build tuli, seega pole Expo linkidel harufiltreid.
Kleebi Expo buildi link
Ühe buildi testimiseks pole integratsiooni vaja. Kleebi keskkonna Androidi või iOS-i sihtmärgis allalaadimislingiks Expo buildi lehe link. Salvestamisel otsib Autonomy buildi üles ja salvestab selle allalaadimise URL-i. Ta kontrollib kontot, projekti, platvormi, seda, et build on valmis ega ole aegunud, ning rakenduse identifikaatorit, kui Expo selle annab.
Autonomy proovib otsingut esmalt ilma mandaatideta ja seejärel sinu organisatsiooni Expo ühendusega, kui Expo küsib juurdepääsu. Kui ta ikka buildi lugeda ei saa, ühenda Expo konto, millel on selleks õigus, kleebi otsene allalaadimislink või laadi build üles. Androidi lingid peavad viima .apk failini.
Kuidas käivitus algab
Kui EAS teatab valmis buildist, Autonomy:
- Leiab lingitud rakenduse ja selle Autonomy projekti. Kui see projekt on arhiveeritud, ei käivitu midagi.
- Võrdleb buildi platvormi lingi platvormidega.
- Kontrollib buildi:
.aab, tundmatu failitüüp või üle 30 päeva vanune allalaadimislink jäetakse vahele. - Alustab vaikimisi testjuhtumi või testiplaani vaikekeskkonnas, rakenduseks see build.
Iga build käivitub üks kord. Kui EAS saadab webhooki kaks korda, teist käivitust ei alustata.
Kontroll
Lingitud hoidla korral on GitHubi kontroll nimetatud selle järgi, mis käivitus, näiteks Autonomy QA: Onboarding, ja see näitab linki igale käivitusele. Selle lõpptulemus on üks järgmistest:
| Lõpptulemus | Millal |
|---|---|
success | Iga käivitus läbis. |
failure | Mõni käivitus kukkus läbi, käivitused tühistati või need ei lõppenud 30 minuti jooksul. |
neutral | Mõni käivitus ei saanud alata, nii et pole midagi hinnata. |
Läbikukkunud käivitus kukutab kontrolli läbi, olgu selle oodatud tulemuseni jõudmata jäänud või agent ei suutnud näidata, et jõuti. Kokkuvõte annab põhjuse.
Kui soovid, et ka vead kukutaksid kontrolli läbi, lülita projekti lehel Settings → Integrations → Pull requests sisse Fail the check on issues. Vaikimisi on see väljas. Kui see on sees, kukutab avatud Bug, mille mõni kontrolli käivitus leidis või uuesti avas, kontrolli läbi: „Failed: a bug was found“. Vaata Pull request'ide testimine.
Ilma lingitud hoidlata on tulemused näha ainult Autonomys.
EAS Workflows
Kui ehitad EAS Workflowsiga, alustab käivitusi ikkagi buildi webhook: sinu töövoog peab ainult ehitama testitava profiiliga.
name: Autonomy E2E
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: the EAS build webhook starts the runs
# when each build finishes.Alusta käivitusi hoopis ise
Kui soovid täpselt otsustada, millal käivitused algavad, kutsu rakenduse linkimise asemel buildile järgnevast sammust API-t. Kasuta organisatsiooni API-võtit, anna rakenduseks buildi allalaadimislink ja saada idempotencyKey, et korratud samm ei alustaks käivitusi kaks korda:
/api/v1/run.trigger1{2 "testPlanId": "...",3 "environmentSlug": "staging",4 "platforms": [5 "android"6 ],7 "targets": {8 "android": {9 "packageName": "com.example.app",10 "artifactUrl": "https://expo.dev/artifacts/eas/....apk",11 "sourceMode": "url"12 }13 },14 "branch": "main",15 "idempotencyKey": "eas-build-<build id>"16}1{2 "runIds": [3 "..."4 ],5 "planGroupRunId": "...",6 "environment": {7 "slug": "staging",8 "name": "Staging"9 }10}Saada võti kujul Authorization: Bearer aut_…. Jälgi iga käivitust run.get abil, kuni selle status on lõplik. Vaata Autentimine ja Käivitused ja välised tõendid.
Mitu rakendust
Lingi iga Expo rakendus eraldi. Igal lingil on oma Autonomy projekt, testiplaan, keskkond ja platvormid. Mitu rakendust võivad kontrollide jaoks jagada üht hoidlat.
Tõrkeotsing
Buildi valmimisel ei alga ühtegi käivitust
Ava Autonomys lingitud rakendus ja vaata viimaseid build'e. Vahele jäetud build ütleb, miks:
project disabled: link on välja lülitatud.deployment not ready: build alles käib või lõppes veaga.no default test target: vali Default test case or plan.- „Choose an environment for this deploy link in Autonomy.“: vali Default environment.
project archivedvõi vaikeseade, mis on arhiveeritud või teises projektis: taasta projekt või vali uued vaikeseaded.no build artifact: buildil pole allalaaditavat faili.
Kui build'e ei ilmu üldse, kontrolli, et webhook näitab olekut Registered automatically, või registreeri see käsitsi, nagu eespool kirjeldatud.
Build ei paigaldu
- iOS: profiil peab seadma
ios.simulator: true. Seadme.ipaei tööta simulaatoris. - Android: profiil peab seadma
android.buildType: "apk"..aabjäetakse vahele teategaartifact kind aab is not installable.
Failitüüpi ei tuvastata
Build pole .app, .apk, .ipa ega .aab ning see jäetakse vahele teatega artifact format not recognized: <ext>. Kontrolli buildiprofiili.
Allalaadimislink aegus
EAS-i allalaadimislingid aeguvad 30 päeva pärast ja build jäetakse vahele teatega build artifact expired. Alusta uus EAS-i build.
Pull request'il ei ilmu kontrolli
Kontrolli, et Post a GitHub check via linked repository on sees, et GitHub repository for checks on valitud ja et Autonomy GitHubi rakendus on sellesse paigaldatud.
Ei leidnud?