Autonomy dokumentatsioon
Integratsioonid

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 .apk ning 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.
  1. Ava Organization → Integrations → Expo EAS ja klõpsa Connect. Kleebi Expo robot access token. Expo kasutab tokeneid, mitte sisselogimist.
  2. Klõpsa Link app ja vali Expo rakendus, mida testida. Autonomy registreerib buildi webhooki.
  3. Vali jaotises Project Autonomy projekt, mille testid nendel build'idel käivituvad. Hilisem muutmine tühjendab allolevad vaikeseaded.
  4. Vali jaotises Default test case or plan, mis igal buildil käivitub. Loetletud on ainult projekti testjuhtumid ja testiplaanid.
  5. 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.
  6. Vali platvormid, mille build'id käivituse alustavad.
  7. 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 simulator väärtuseks true, et saada simulaatori .app build. Seadme .ipa faili ei saa simulaatorisse paigaldada.
  • Android: sea buildType väärtuseks apk. .aab faili ei saa emulaatorisse paigaldada.
eas.jsonjson
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:

  1. Klõpsa Make a new secret for this command. Autonomy loob saladuse ja täidab kogu eas webhook:create käsu.
  2. Kopeeri käsk kohe. Saladust enam ei näidata; kui see kaob, loo uus ja vana lakkab töötamast.
  3. 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.

Ü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:

  1. Leiab lingitud rakenduse ja selle Autonomy projekti. Kui see projekt on arhiveeritud, ei käivitu midagi.
  2. Võrdleb buildi platvormi lingi platvormidega.
  3. Kontrollib buildi: .aab, tundmatu failitüüp või üle 30 päeva vanune allalaadimislink jäetakse vahele.
  4. 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õpptulemusMillal
successIga käivitus läbis.
failureMõni käivitus kukkus läbi, käivitused tühistati või need ei lõppenud 30 minuti jooksul.
neutralMõ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.

.eas/workflows/autonomy-e2e.ymlyaml
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:

POST/api/v1/run.trigger
Requestjson
1{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}
Responsejson
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 archived võ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 .ipa ei tööta simulaatoris.
  • Android: profiil peab seadma android.buildType: "apk". .aab jäetakse vahele teatega artifact 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.

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?

On this page