ScreenStack
flightstack/screen-stack@1.0.0 Step Verified Capture app screens with ScreenStack, render designs with Playwright and upload store screenshots.
Add it to a pipeline
jobs:
- id: screen-stack
uses: flightstack/screen-stack@1.0.0 Or drag it onto the canvas from the step palette in the visual editor. Pin an exact version for production pipelines.
Inputs
-
apiKeyVariablestring defaultSCREENSTACK_API_KEY - Name of the FlightStack variable that holds the ScreenStack project API key (
ssk_…, from Project settings → API keys in ScreenStack). Store the key as a secret organization or repository variable; secret values are masked in job logs and never appear in the pipeline. -
platformstring defaultall - Platform to capture.
allruns every platform configured in screenstack.yml. Web needs Node.js 20+; Flutter, iOS, Android and React Native also need their toolchains on the agent, and iOS needs a macOS agent. Ignored when captureCommand is set. -
workingDirectorystring default. - Repo subdirectory to run the ScreenStack CLI and captureCommand in. Firebase configs are placed relative to it, so for a Flutter app in a monorepo use the app directory (the one with android/ and ios/) and point configPath at the repository's screenstack.yml.
-
configPathstring defaultscreenstack.yml - Path to screenstack.yml (version 2), relative to workingDirectory. Export and store uploads run from the directory that holds it.
-
apiUrlstring - ScreenStack API origin. Leave empty for the CLI's default.
-
cliVersionstring default0.4.0 - Version of
@voostack/screenstack-sdkused for every CLI call. Also exported to captureCommand as SCREENSTACK_CLI_VERSION. -
captureCommandstring - Shell command to run from workingDirectory instead of
screenstack run, for captures that need setup the CLI does not do (seeding a demo account, booting simulators and emulators). It must capture and upload to ScreenStack itself; SCREENSTACK_API_KEY and the secretVariables are exported to it. platform is ignored when this is set. -
secretVariablesstring - Comma-separated names of FlightStack variables to export to the capture under the same names, such as a demo account's credentials. Every listed variable must have a value.
-
firebaseAndroidConfigcredentialRef - Firebase Android config to place at android/app/google-services.json under workingDirectory before capturing.
-
firebaseIosConfigcredentialRef - Firebase iOS config to place at ios/Runner/GoogleService-Info.plist under workingDirectory before capturing.
-
designIdsstring - Comma-separated ScreenStack design ids (
cvs_…) to re-render from the new captures after they upload (screenstack export). With storeTargets set, these designs' exports are what the stores receive. -
storeTargetsstring defaultnone - Stores to replace screenshots in after capture (
screenstack store), using the store block of screenstack.yml. With designIds, the designed exports are uploaded; without, the raw captures are fitted to store sizes. App Store needs appleCredential, Google Play needs googleCredential. -
appVersionstring - App Store version to upload screenshots to, created if missing. Leave empty for the version currently editable in App Store Connect. Google Play ignores it.
-
appleCredentialcredentialRef - App Store Connect API key, required when storeTargets includes app-store.
-
googleCredentialcredentialRef - Google Play service account, required when storeTargets includes google-play.
Outputs
screenshotDirartifact- The CLI's output directory (default build/screenstack) with the captured PNGs and manifest.json.
dashboardUrlstring- ScreenStack dashboard URL of the uploaded capture run (empty when nothing was uploaded).