Appearance
Environment variables
Variables furnace reads
| Variable | Default | Meaning |
|---|---|---|
FURNACE_CELLS | ~/qoliber-furnace | cell root |
FURNACE_SNAPSHOTS | ~/.furnace/golden | golden snapshots |
FURNACE_RUNS | ~/.furnace/runs | run logs and reports |
FURNACE_WORK | ~/.furnace/work | staged packages for composer installs, per cell, and the harness/ work projects for --package |
FURNACE_CATALOG | config/platforms.yaml | the required platform/PHP policy |
FURNACE_COMPOSER | auto-detected | path to the Composer binary |
FURNACE_RECTOR_CACHE, FURNACE_RECTOR_CONTAINER_CACHE | per run | Rector cache directories, so parallel children do not collide |
FURNACE_RUN_DIR | per run | an existing run directory to log into; used by parallel children |
COMPOSER_HOME, COMPOSER_AUTH | composer's own | where the global auth.json lives, and credentials passed as JSON; furnace reads registry credentials exactly where composer does and stores none |
Variables furnace sets for your tests
| Variable | Given to | Value |
|---|---|---|
FURNACE_BASE_URL | Playwright, seeder | the store view under test, e.g. https://m248.test/hyva/ |
BASE_URL, PLAYWRIGHT_BASE_URL | legacy Playwright suites | the same URL under the names older suites read |
FURNACE_ADMIN_STATE, FURNACE_E2E_REPORT | the generated Playwright config | the admin storage state the setup project writes, and where the JSON result goes |
ADMIN_USER, ADMIN_PASS, ADMIN_PATH | Playwright | an admin user furnace creates per run, and the absolute admin URL |
FURNACE_ADMIN_USER | protocol suites | the same admin user, through the fixture package |
FURNACE_CELL, FURNACE_CELL_NAME | seeder | the Magento root to bootstrap and the cell's name |
Specs should not read these directly; the @furnace/playwright package exposes them as fixtures so a suite cannot misspell one.
Accounts furnace creates inside a cell
| Account | Created by | Lifetime |
|---|---|---|
furnace_e2e | the browser gate, with a fixed password | until the golden restore at the end of the run |
furnace_fresh | setup:install in a fresh-install run | until the golden restore |
Neither is a secret: both exist only on a cell that is reset after every run.