Both actions are published in the Inflectra/rapise-powerpack repository. You can reference them directly or copy them into your own repository.

Prerequisites

  • A GitHub repository.
  • A Spira instance (SpiraTest / SpiraTeam / SpiraPlan) with an active user account.
  • Test Sets in Spira configured to run automated Rapise tests.
  • An Automation Host record created in Spira (e.g., named GHA).

Storing Spira Credentials

For security, store your Spira API Key as a GitHub Secret:

  1. In Spira, go to My Profile and copy your RSS Token (this is your API Key).
  2. In your GitHub repository, go to Settings > Secrets and variables > Actions.
  3. Click New repository secret, set the name to SPIRA_API_KEY, paste your token, and save.

rapiselauncher-node (Linux & Windows)

rapiselauncher-node uses the Node.js-based cross-platform Rapise engine. It runs on both ubuntu-latest and windows-latest runners.

Installing the Action

Copy the rapiselauncher-node folder from rapise-powerpack into your repository at:

.github/actions/rapiselauncher-node/

Then reference it in your workflow as:

uses: ./.github/actions/rapiselauncher-node

Running with RepositoryConnection.xml

If you already have a RepositoryConnection.xml file checked into your repository (with Spira server, user, and password pre-configured), point the action to it:

name: Run Rapise Tests (Node, Config File)

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: ./.github/actions/rapiselauncher-node
        with:
          spira_config: '${{ github.workspace }}/RepositoryConnection.xml'
          spira_test_set_id: '925,1266'
          rapise_params: |
            g_browserLibrary=Selenium - ChromeHeadless

When spira_config is provided, the spira_urlspira_usernamespira_api_key, and spira_automation_host inputs are not needed — everything is read from the XML file.

Running with Test Set URL and Credentials

Instead of a config file, you can pass Spira connection details directly. The spira_url input supports two forms:

  • Short formhttps://myserver.spiraservice.net/ — requires spira_project_id and spira_test_set_id to be set separately.
  • Full formhttps://myserver.spiraservice.net/9/TestSet/925.aspx — the project ID and test set ID are extracted automatically from the URL.
name: Run Rapise Tests (Node, Credentials)

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: ./.github/actions/rapiselauncher-node
        with:
          spira_url: 'https://myserver.spiraservice.net/9/TestSet/925.aspx'
          spira_username: 'myuser'
          spira_api_key: ${{ secrets.SPIRA_API_KEY }}
          spira_automation_host: GHA
          rapise_params: |
            g_browserLibrary=Selenium - ChromeHeadless

Running on Multiple Platforms

Use a matrix strategy to run the same tests on both Linux and Windows:

name: Run Rapise Tests (Cross-Platform)

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v4

      - uses: ./.github/actions/rapiselauncher-node
        with:
          spira_url: 'https://myserver.spiraservice.net/9/TestSet/925.aspx'
          spira_username: 'myuser'
          spira_api_key: ${{ secrets.SPIRA_API_KEY }}
          spira_automation_host: GHA
          rapise_params: |
            g_browserLibrary=Selenium - ChromeHeadless

Passing Additional Parameters

Use the rapise_params input to pass any number of --param values to RapiseLauncher. Each line becomes a separate --param flag:

rapise_params: |
  g_browserLibrary=Selenium - ChromeHeadless
  g_verboseLevel=3

Note: On headless Linux runners, always pass g_browserLibrary=Selenium - ChromeHeadless to ensure browser tests run without a display.

Setting a Timeout

Use timeout_minutes to kill the launcher if it exceeds the specified duration:

- uses: ./.github/actions/rapiselauncher-node
  with:
    spira_url: 'https://myserver.spiraservice.net/9/TestSet/925.aspx'
    spira_username: 'myuser'
    spira_api_key: ${{ secrets.SPIRA_API_KEY }}
    timeout_minutes: 10
    rapise_params: |
      g_browserLibrary=Selenium - ChromeHeadless

Specifying Rapise and Node.js Versions

- uses: ./.github/actions/rapiselauncher-node
  with:
    rapise_version: '9.0.35.24'
    node_version: '22.x'
    # ... other inputs

Git Root for Spira Tests Stored in Git

If your Rapise tests are stored in a Git repository connected to Spira, the action automatically sets GITROOT to $GITHUB_WORKSPACE. Override it with git_root if needed:

- uses: ./.github/actions/rapiselauncher-node
  with:
    git_root: '${{ github.workspace }}/tests'
    # ... other inputs

Artifacts

By default (upload_artifacts: 'true'), the action collects .trp.tap.log, and .xml files from the workspace and ~/.rapise/temp, then uploads them as a rapise-results-<OS> artifact. Disable with:

upload_artifacts: 'false'

rapiselauncher-node Input Reference

InputDefaultDescription
spira_config Path to existing RepositoryConnection.xml. When set, URL/user/key inputs are ignored.
spira_url Spira server URL. Short form: https://server/. Full form: https://server/9/TestSet/925.aspx.
spira_username Spira username.
spira_api_key Spira API key (RSS Token).
spira_project_id Spira Project ID. Optional if using full-form URL.
spira_test_set_id Test Set ID(s), comma-separated (e.g. 925,1266).
spira_automation_host(hostname)Automation Host Token. Defaults to runner hostname.
install_rapisetrueWhether to install Rapise.
rapise_version9.0.35.24Rapise version to install.
node_version22.xNode.js version to set up.
rapise_params Additional --param values, one per line.
timeout_minutes0Execution timeout in minutes. 0 = no timeout.
git_root Path to Git project root. Defaults to $GITHUB_WORKSPACE.
upload_artifactstrueUpload execution artifacts after run.

rapiselauncher-win (Windows Only)

rapiselauncher-win uses the native Windows Rapise installer and the desktop RapiseLauncher.exe. It requires a windows-latest (or self-hosted Windows) runner.

Installing the Action

Copy the rapiselauncher-win folder from rapise-powerpack into your repository at:

.github/actions/rapiselauncher-win/

Then reference it in your workflow as:

uses: ./.github/actions/rapiselauncher-win

Running with RepositoryConnection.xml

name: Run Rapise Tests (Windows, Config File)

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4

      - uses: ./.github/actions/rapiselauncher-win
        with:
          spira_config: '${{ github.workspace }}/RepositoryConnection.xml'
          spira_test_set_id: '925,1266'

Running with Test Set URL and Credentials

Same URL forms as rapiselauncher-node (short and full):

name: Run Rapise Tests (Windows, Credentials)

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4

      - uses: ./.github/actions/rapiselauncher-win
        with:
          spira_url: 'https://myserver.spiraservice.net/9/TestSet/925.aspx'
          spira_username: 'myuser'
          spira_api_key: ${{ secrets.SPIRA_API_KEY }}
          spira_automation_host: GHA

Enabling Video Recording

Record a video of the test execution and upload it to the Spira Test Run:

- uses: ./.github/actions/rapiselauncher-win
  with:
    spira_url: 'https://myserver.spiraservice.net/9/TestSet/925.aspx'
    spira_username: 'myuser'
    spira_api_key: ${{ secrets.SPIRA_API_KEY }}
    record_video: 'true'
    record_video_options: '-noaudio -bitRate 512 -frameRate 2'
    # ... other inputs

The default record_video_options are -noaudio -bitRate 512 -frameRate 2. Adjust as needed.

Setting Screen Resolution

Set a custom screen resolution for the runner before test execution:

- uses: ./.github/actions/rapiselauncher-win
  with:
    set_screen_size: 'true'
    screen_width: '1920'
    screen_height: '1080'
    # ... other inputs

Screenshots

By default (capture_screenshots: 'true'), the action captures a screenshot of the desktop before and after test execution. These are included in the uploaded artifacts. Disable with:

capture_screenshots: 'false'

Artifacts

By default (upload_artifacts: 'true'), the action collects screenshots, .trp.tap.log.wmv files, and Rapise logs into a rapise-results artifact. Disable with:

upload_artifacts: 'false'

rapiselauncher-win Input Reference

InputDefaultDescription
spira_config Path to existing RepositoryConnection.xml. When set, URL/user/key inputs are ignored.
spira_url Spira server URL. Short or full form.
spira_username Spira username.
spira_api_key Spira API key (RSS Token).
spira_project_id Spira Project ID. Optional if using full-form URL.
spira_test_set_id Test Set ID(s), comma-separated.
spira_automation_host(hostname)Automation Host Token. Defaults to runner hostname.
install_rapisetrueWhether to install Rapise.
rapise_version9.0.35.26Rapise version to install.
set_screen_sizefalseSet screen resolution before execution.
screen_width1920Screen width (1024–7680).
screen_height1080Screen height (768–4320).
record_videofalseRecord video and upload to Spira Test Run.
record_video_options-noaudio -bitRate 512 -frameRate 2Video recording options.
capture_screenshotstrueCapture before/after screenshots.
upload_artifactstrueUpload execution artifacts after run.
timeout_minutes0Execution timeout in minutes. 0 = no timeout.
git_root Path to Git project root. Defaults to $GITHUB_WORKSPACE.

Which Action Should I Use?

 rapiselauncher-noderapiselauncher-win
Runnersubuntu-latestwindows-latestwindows-latest only
EngineNode.js (cross-platform)Native Windows (RapiseLauncher.exe)
Video recordingNot supportedSupported
Screen resolutionNot supportedSupported
ScreenshotsNot supportedBefore/after desktop screenshots
Best forAPI tests, headless browser tests, cross-platform CIDesktop UI tests, tests requiring video/screen control

Reviewing Results

  • In Spira: Test execution results are automatically uploaded to your Test Run records.
  • In GitHub: After the workflow completes, go to the workflow run summary page. Under the Artifacts section, download the rapise-results archive containing logs, reports, screenshots, and video files for troubleshooting.