CI/CD
The qa-automation repository uses GitHub Actions to automate testing, linting, and infrastructure deployment. All workflows are defined in .github/workflows/ and can be triggered automatically or manually.
Workflows
| Workflow | Trigger | Purpose |
|---|---|---|
|
Called by other workflows (reusable workflow) |
Imports |
|
Daily at 12:00 UTC (cron: |
Runs the full test suite sequentially, executing one test set per matrix key. Runs 6 separate test suites (keys: |
|
Manual workflow dispatch via GitHub UI or Jira automation |
Runs specific test set(s) on-demand. Accepts |
|
Pull request to |
Lints code ( |
|
Push to |
Builds code and applies Terraform changes to the test environment only |
Test Execution Pipeline
The cucumber.yaml reusable workflow implements the complete test execution flow:
-
Checkout code — Clone the repository at the trigger commit
-
Setup environment — Write AWS credentials to
cucumber/.env, setXRAY_TOKENandXRAY_CLIENT_IDenvironment variables -
Import features — Call
cucumber/import_features.sh --keys <keys>to download the latest.featurefiles from Jira/Xray API -
GitHub Container Registry login — Authenticate to pull the devkit Docker image used for test execution
-
Run tests — Execute
make cucumberwhich launches tests inside a Docker container viayarn test -
Export results — Call
cucumber/export_results.sh --keys <keys>to upload test results JSON back to Jira/Xray API
Jira/Xray Integration
Two shell scripts handle synchronization with Jira/Xray:
- Import (
cucumber/import_features.sh) -
Fetches
.featurefiles from the Xray API and writes them to the localcucumber/features/directory. Accepts--keysflag with comma-separated Jira issue keys. - Export (
cucumber/export_results.sh) -
Reads test results from the latest run and uploads them to Xray API. Accepts
--keysflag to associate results with specific Jira issues.
Both scripts require:
* XRAY_TOKEN — API token for Xray authentication
* XRAY_CLIENT_ID — Client ID for Xray authentication
These are stored as GitHub Action secrets and injected during workflow execution.
Manual Dispatch
To manually trigger a test run:
-
Navigate to the Actions tab in the GitHub repository
-
Select the On Dispatch workflow
-
Click Run workflow button
-
Enter the
keysparameter as a comma-separated list of Jira issue keys (e.g.,ENG-8820,ENG-9250) -
Click Run workflow
Tests will execute immediately and results will be exported to Xray.
Alternatively, Jira automation can trigger the dispatch workflow via the Xray "Execute Test" button if the webhook is configured.