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

apiKeyVariable string default SCREENSTACK_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.
platform string default all
Platform to capture. all runs 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.
workingDirectory string 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.
configPath string default screenstack.yml
Path to screenstack.yml (version 2), relative to workingDirectory. Export and store uploads run from the directory that holds it.
apiUrl string
ScreenStack API origin. Leave empty for the CLI's default.
cliVersion string default 0.4.0
Version of @voostack/screenstack-sdk used for every CLI call. Also exported to captureCommand as SCREENSTACK_CLI_VERSION.
captureCommand string
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.
secretVariables string
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.
firebaseAndroidConfig credentialRef
Firebase Android config to place at android/app/google-services.json under workingDirectory before capturing.
firebaseIosConfig credentialRef
Firebase iOS config to place at ios/Runner/GoogleService-Info.plist under workingDirectory before capturing.
designIds string
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.
storeTargets string default none
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.
appVersion string
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.
appleCredential credentialRef
App Store Connect API key, required when storeTargets includes app-store.
googleCredential credentialRef
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).