Eksekusi headless dan integrasi berkelanjutan
Sebuah skenario yang dibangun di dalam antarmuka dapat dijalankan tanpa jendela dari baris perintah. Inilah jalur yang mengubah pengujian API Anda menjadi sebuah tahap pipeline.

restorm \ --open ./projet.restorm \ --run "Find pets by status" \ --headless \ --param status=availableArgumennya
Section titled “Argumennya”| Argumen | Peran |
|---|---|
--open <jalur>, -o | Proyek yang akan dibuka. Wajib bersama --run |
--run <sasaran> | Skenario yang akan dijalankan. Kehadirannya mengaktifkan mode baris perintah |
--by <name|id> | Cara --run menunjuk skenarionya: menurut nama (bawaan) atau menurut pengenal |
--headless | Tanpa jendela. Tanpa opsi ini, jendelanya muncul selagi lognya bergulir di konsol |
--param nama=nilai | Sebuah nilai untuk sebuah parameter masukan skenario (sebuah kotak Input / Param). Dapat diulang |
--all-logs | Menyertakan entri milik mesinnya; secara bawaan hanya entri dari aksi Log yang dipancarkan |
--out <file> | Menulis lognya juga ke sebuah file, secara berkelanjutan |
--clear-settings, -cls | Mengatur ulang preferensi sebelum peluncurannya |
Sebuah --param yang salah bentuk (tanpa =) dilaporkan ke keluaran galat dan
diabaikan. nama= (nilai kosong) diterima.
Nilainya dikonversi menurut tipe yang dideklarasikan untuk parameternya — lihat Variabel dan data.
Kode keluar
Section titled “Kode keluar”| Kode | Artinya |
|---|---|
0 | Skenarionya berakhir dengan benar |
1 | Gagal, dibatalkan, atau galat mesinnya |
2 | Sasaran tidak ditemukan, file --out tidak dapat diakses, atau --run tanpa --open |
3 | Hak ditolak: RESTORM_TOKEN tidak ada, tidak valid, atau dicabut, paket tidak memadai, atau titik verifikasinya tidak dapat dihubungi |
Konvensi inilah yang membuat hasilnya langsung dapat dimanfaatkan oleh sebuah runner CI.
Keluarannya
Section titled “Keluarannya”Lognya ditulis ke keluaran standar, satu entri sekaligus, begitu entri itu dihasilkan, dalam bentuk urutan YAML:
- message: "🔵 [2026-07-29 10:30:00.123] Commande créée" data: { id: 4271 }Levelnya diawali sebuah titik penanda: ⚪ debug, 🔵 info, 🟠 warn,
🔴 error. Barisnya tidak pernah dipotong — keluarannya tetap dapat di-grep.
Galat dikirim ke keluaran galat standar.
Inilah persis teks yang dihasilkan tombol “salin log” pada antarmukanya: format yang sama di kedua sisi.
Rahasia di CI
Section titled “Rahasia di CI”Gunakan sumber rahasia variabel lingkungan: rahasianya disuntikkan oleh brankas CI Anda, Restorm hanya membacanya, dan tidak ada yang ditulis ke dalam proyeknya. Lihat Rahasia.
Memasang Restorm di runner
Section titled “Memasang Restorm di runner”- Dari npm —
npm i -g restorm-cli@<versi>, lalurestorm …. Build resmi diunduh satu kali, diverifikasi dengan checksum yang dipublikasikan, dan disimpan di cache, sehingga tugas berikutnya di mesin yang sama tidak mengunduh apa pun. Nomor versi paket npm adalah versi Restorm yang dijalankannya: mengunci yang satu berarti mengunci yang lain. - Dari paket sistem (
.deb,.rpm), seperti pada contoh di bawah — pilihan yang lebih baik jika Anda membangun image runner sendiri, karena tugas tidak lagi mengunduh apa pun.
Action GitHub resmi
Section titled “Action GitHub resmi”Di GitHub, Monsieur-Dev/restorm-action merangkum semua yang dijelaskan halaman ini dalam satu langkah: memasang Restorm melalui restorm-cli (satu unduhan terverifikasi checksum, di-cache antar-tugas), membungkusnya dalam xvfb, menjalankan skenario tanpa antarmuka, dan menerjemahkan setiap kode keluar menjadi kesalahan tugas bernama.
- uses: Monsieur-Dev/restorm-action@v1 with: project: ./api.restorm scenario: Smoke tests params: | status=available env: RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}Tag action menyematkan versi Restorm (@v1.2.3 menjalankan Restorm 1.2.3), atau berikan input version: eksplisit. Semua input didokumentasikan di README repositori. Resep manual di bawah tetap tersedia bagi yang menginginkan kendali penuh.
GitHub Actions
Section titled “GitHub Actions”name: Tests d'APIon: [push]
jobs: api: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- name: Installer Restorm env: RESTORM_VERSION: '1.4.2' # versi yang ingin Anda sematkan run: | curl -sSL -o restorm.deb \ "https://dl.restorm.app/restorm_${RESTORM_VERSION}_amd64.deb" sudo apt-get install -y ./restorm.deb
- name: Exécuter les tests de fumée env: RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }} API_TOKEN: ${{ secrets.API_TOKEN }} run: | xvfb-run -a restorm \ --open ./api.restorm \ --run "Find pets by status" \ --headless \ --all-logs \ --out run.log \ --param status=available
- name: Publier le journal if: always() uses: actions/upload-artifact@v4 with: name: journal-restorm path: run.logGitLab CI
Section titled “GitLab CI”tests-api: image: ubuntu:24.04 variables: RESTORM_TOKEN: $RESTORM_TOKEN RESTORM_VERSION: '1.4.2' # versi yang ingin Anda sematkan before_script: - apt-get update && apt-get install -y curl xvfb - curl -sSL -o restorm.deb "https://dl.restorm.app/restorm_${RESTORM_VERSION}_amd64.deb" - apt-get install -y ./restorm.deb script: - > xvfb-run -a restorm --open ./api.restorm --run "Find pets by status" --headless --all-logs --out run.log --param status=$PET_STATUS artifacts: when: always paths: [run.log]Apa yang berubah dalam mode headless
Section titled “Apa yang berubah dalam mode headless”- Aksi Toast tidak melakukan apa pun; eksekusinya berlanjut sebagaimana biasa.
- Parameter tidak dapat diminta secara interaktif: berikan semuanya dengan
--param, atau biarkan mengambil nilai bawaannya. - Server MCP tidak pernah dijalankan pada mesin tanpa tampilan, apa pun setelannya.
Memperoleh sebuah token
Section titled “Memperoleh sebuah token”Token RESTORM_TOKEN (berawalan rstk_) dihasilkan dari dasbor akun Anda.
Token itu terikat pada organisasi, bukan pada perseorangan: inilah token yang
disimpan di dalam brankas CI. Lihat
Akun dan masuk.