12 Suite & CI
Menjalankan semua flow otomatis di setiap push.
Konsep inti
- 12.1
Atur suite
Pilih flow lewat config dan tag.
# .maestro/config.yaml flows: - flows/* includeTags: [smoke] - 12.2
Laporan
Hasil yang dibaca CI.
$ maestro test .maestro/ \ --format junit --output report.xml - 12.3
Di CI
Jalankan di GitHub Actions + emulator.
- run: maestro test .maestro/
$ maestro test .maestro/
[Passed] Login sukses
[Passed] Buat pesanan
…
[Passed] Walk-in + VA
14/14 Flows Passed
report.xmlCIPraktik di playground
- Beri tag: smoke, regression
- Jalankan dengan report junit
- Pasang di GitHub Actions
Misi
Proyek akhir: suite hijau di CI dengan report junit.
Lihat kunci jawabankunci/m12_ci/.github/workflows/maestro.ymlContoh referensi
kunci/m12_ci/.github/workflows/maestro.yml
name: maestro
on: [push, pull_request]
jobs:
ui-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Aktifkan KVM untuk emulator
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules && sudo udevadm trigger --name-match=kvm
- name: Install Maestro
run: |
curl -Ls "https://get.maestro.mobile.dev" | bash
echo "$HOME/.maestro/bin" >> "$GITHUB_PATH"
- name: Unduh APK playground
run: curl -fsSL -o app.apk "$APK_URL"
env:
APK_URL: https://files.aminhamzah.com/apk/laundry-kiloan-latest.apk
- name: Jalankan suite di emulator
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 34
arch: x86_64
script: |
adb install -r app.apk
maestro test .maestro/ --format junit --output report.xml
- uses: actions/upload-artifact@v4
if: always()
with:
name: maestro-report
path: |
report.xml
~/.maestro/tests/Emulator CI lebih lambat → timeout terlalu ketat.