Overview
With the cross-platform capabilities of Rapise (via Node.js), you can run your automated UI and API tests directly on Linux-based cloud runners in GitHub Actions.
This guide demonstrates how to configure a GitHub Actions workflow that:
Installs Node.js and the RapiseLauncher.
Connects to your SpiraTest / SpiraTeam / SpiraPlan instance.
Retrieves and executes designated Test Sets.
Uploads execution logs and artifacts back to GitHub for easy debugging
Prerequisites
A GitHub repository.
A Spira instance 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 GITHUB).
Step 1: Create a GitHub Secret for Your Spira API Key
For security reasons, you should never hardcode passwords or API keys in your repository. We will store your Spira API Key as a GitHub Secret.
First, retrieve your API Key from Spira:
Log into Spira and click on your profile picture (top right), then select My Profile.
Locate the RSS Token field. Enable it if you haven't already, and copy the token string. (This acts as your API Key).
Go to your GitHub repository.
Navigate to Settings > Secrets and variables > Actions.
Click the New repository secret button.
In the Name field, enter exactly: SPIRA_API_KEY
In the Secret field, paste your Spira API key.
Click Add secret.
Step 2: Create the GitHub Actions Workflow File
GitHub Actions rely on YAML configuration files stored in a specific directory in your repository.
In your GitHub repository, create a new file.
Set the path and filename to: .github/workflows/rapise-tests-node.yml
Paste the following YAML code into the file:
# .github/workflows/rapise-tests-node.yml
name: Run Rapise Tests
# This makes the workflow manually triggerable from the Actions tab
# It's the direct equivalent of Azure DevOps' "trigger: none"
on:
workflow_dispatch:
jobs:
run-rapise:
# This is the equivalent of "pool: vmImage: ubuntu-latest"
runs-on: ubuntu-latest
steps:
# Step 1: Install Node.js
# This is the equivalent of the "NodeTool@0" task
- name: Install Node.js 22
uses: actions/setup-node@v4
with:
node-version: '22.x'
# Step 2: Install Rapise
# The 'run' keyword is the equivalent of 'script'
- name: Install Rapise
run: |
echo "Installing Rapise..."
npm install https://inflectra-rapise-nightly-installers.s3.eu-north-1.amazonaws.com/Rapise_9.0.35.24/rapise-9.0.35.24.tgz
# Step 3: Configure the Rapise Launcher
- name: Configure Rapise Launcher
run: |
echo "Configuring RapiseLauncher..."
npx rapiselauncher -c RepositoryConnection.xml --set SpiraServer=https://company.spiraservice.net/ --set SpiraUser=username --set SpiraPassword=${{ secrets.SPIRA_API_KEY }} --set AutomationHost=GITHUB
# Step 4: Run the Rapise Launcher
- name: Run Rapise Launcher
run: |
echo "Running RapiseLauncher..."
npx rapiselauncher -c RepositoryConnection.xml -t 1000,1001,1002 --details --param "g_browserLibrary=Selenium - Chrome Headless"
# Step 5: Publish all files from working folder
- name: Upload Working Folder
if: always()
uses: actions/upload-artifact@v4
with:
name: working-folder
path: |
.
!node_modules
~/.rapise/temp
Step 3: Customize the Workflow File
Before committing your file, you need to adjust a few parameters to match your environment:
SpiraServer: Change https://companyspiraservice.net/ to the base URL of your Spira instance.
SpiraUser: Change username to your Spira username.
AutomationHost: Change GITHUB to the exact name of the Automation Host you created in Spira.
-t 1000,1001,1002: Change this comma-separated list to the actual IDs of the Spira Test Sets you want to execute.
(Note on Browser Profile): Because the workflow runs on a UI-less Linux server (ubuntu-latest), we pass --param "g_browserLibrary=Selenium - Chrome Headless" to ensure the test executes cleanly in the background.
Once you have made your changes, commit the file to your repository.
Step 4: Run the Workflow
Because we used the workflow_dispatch trigger, this workflow can be launched manually whenever you need it.
In your GitHub repository, click on the Actions tab.
On the left sidebar, click on Run Rapise Tests (the name of our workflow).
On the right side, click the Run workflow dropdown button.
Select your branch and click Run workflow.
GitHub will queue the job. You can click on the in-progress run to watch the logs in real time as Node.js installs Rapise, connects to Spira, and executes your test set.
Step 5: Review Results and Artifacts
Once the workflow finishes:
In Spira: The results of the test execution will automatically be uploaded to your Test Run records in Spira.
In GitHub: If you encounter errors or need to look at local execution logs, scroll to the bottom of the Workflow run summary page. Under the Artifacts section, you will see a downloadable file named working-folder. This ZIP file contains your local test execution files and Rapise temporary files (excluding the bulky node_modules folder), which are highly useful for troubleshooting.