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:
- In Spira, go to My Profile and copy your RSS Token (this is your API Key).
- In your GitHub repository, go to Settings > Secrets and variables > Actions.
- 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_url, spira_username, spira_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 form:
https://myserver.spiraservice.net/ — requires spira_project_id and spira_test_set_id to be set separately. - Full form:
https://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
| Input | Default | Description |
|---|
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_rapise | true | Whether to install Rapise. |
rapise_version | 9.0.35.24 | Rapise version to install. |
node_version | 22.x | Node.js version to set up. |
rapise_params | | Additional --param values, one per line. |
timeout_minutes | 0 | Execution timeout in minutes. 0 = no timeout. |
git_root | | Path to Git project root. Defaults to $GITHUB_WORKSPACE. |
upload_artifacts | true | Upload 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
| Input | Default | Description |
|---|
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_rapise | true | Whether to install Rapise. |
rapise_version | 9.0.35.26 | Rapise version to install. |
set_screen_size | false | Set screen resolution before execution. |
screen_width | 1920 | Screen width (1024–7680). |
screen_height | 1080 | Screen height (768–4320). |
record_video | false | Record video and upload to Spira Test Run. |
record_video_options | -noaudio -bitRate 512 -frameRate 2 | Video recording options. |
capture_screenshots | true | Capture before/after screenshots. |
upload_artifacts | true | Upload execution artifacts after run. |
timeout_minutes | 0 | Execution timeout in minutes. 0 = no timeout. |
git_root | | Path to Git project root. Defaults to $GITHUB_WORKSPACE. |
Which Action Should I Use?
| | rapiselauncher-node | rapiselauncher-win |
|---|
| Runners | ubuntu-latest, windows-latest | windows-latest only |
| Engine | Node.js (cross-platform) | Native Windows (RapiseLauncher.exe) |
| Video recording | Not supported | Supported |
| Screen resolution | Not supported | Supported |
| Screenshots | Not supported | Before/after desktop screenshots |
| Best for | API tests, headless browser tests, cross-platform CI | Desktop 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.