Perf CI Pipelines
Drop-in CI/CD pipeline templates for JMeter, K6, and Gatling across GitHub Actions, GitLab CI, Jenkins, and Azure DevOps.
Free Community · Professional £500/yr
After purchase, your license key is emailed by Lemon Squeezy. Enter it on the download page to access your templates.
What's Included
Overview
Perf CI Pipelines gives you production-ready CI/CD pipeline templates for running performance tests in GitHub Actions, GitLab CI, Jenkins, and Azure DevOps — with no boilerplate to write.
Drop the templates into your repository, point them at your test file, and get quality-gated performance testing in your pipeline in minutes. All templates run tests via perf-containers so no JMeter, K6, or Gatling installation is required on your CI agents.
Template Types
Basic Templates (Community)
Minimal single-tool workflows for PR smoke tests and on-demand runs. Available for all four CI platforms × three tools (JMeter, K6, Gatling).
Each basic template includes:
- perf-lint script quality check before test execution (non-blocking)
- Test execution via perf-containers
- Results uploaded as CI artifacts
- Markdown summary in the pipeline run
Full Pipeline Templates (Professional)
Complete six-stage workflows covering the entire testing lifecycle:
| Stage | Description |
|---|---|
| Setup | Reads and validates perf-config.yaml |
| Lint | perf-lint quality check on the test script |
| Data generation | Generates test data via dummydatagenpro |
| Test execution | Runs the test via perf-containers |
| Quality gates | Evaluates results against configurable thresholds |
| Reporting | HTML report via perf-reporting, upload to perf-results-db |
| Notifications | Slack / email / Teams notification with run summary |
Distributed Testing (Professional)
Kubernetes-based high-scale load generation for all three tools:
- JMeter — controller + worker pods via Helm charts
- K6 — parallel segments via k6-operator
- Gatling — injection nodes via Kubernetes Jobs
Pricing
| Feature | Community | Professional |
|---|---|---|
| GitHub Actions, GitLab CI, Jenkins, Azure DevOps | ✓ | ✓ |
| JMeter, K6 & Gatling | ✓ | ✓ |
| Basic pipeline templates | ✓ | ✓ |
| perf-lint integration | ✓ | ✓ |
| Quality gates & threshold presets | ✓ | ✓ |
| Scenario presets (smoke / load / stress / soak) | ✓ | ✓ |
| Full pipeline templates (6-stage) | — | ✓ |
| Distributed K8s testing | — | ✓ |
| Composite actions / shared library / step templates | — | ✓ |
| upload-to-results-db integration | — | ✓ |
| Price |
Free
|
£500
/year
|
| Download Free | Buy Professional |
30-day money-back guarantee · Annual license
Quick Start
GitHub Actions
# .github/workflows/performance.yml
jobs:
perf-test:
uses: markslilley/perf-ci-pipelines/.github/workflows/performance-pipeline.yml@main
with:
scenario: load
environment: staging
secrets:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
GitLab CI
include:
- remote: 'https://raw.githubusercontent.com/markslilley/perf-ci-pipelines/main/gitlab-ci/templates/basic-jmeter.yml'
variables:
PERF_TARGET_HOST: "https://api.staging.example.com"
PERF_TEST_FILE: "tests/performance/load-test.jmx"
Jenkins
@Library('perf-ci-pipelines') _
pipeline {
agent any
stages {
stage('Performance Test') {
steps {
script {
perfTest(tool: 'jmeter', testFile: 'tests/load-test.jmx', duration: '10m', users: 50)
perfQualityGates(tool: 'jmeter', resultsFile: 'results/results.jtl', thresholdPreset: 'default')
}
}
}
}
}
Azure DevOps
- template: azure-devops/templates/jobs/perf-test-jmeter.yml@perf-templates
parameters:
testFile: 'tests/load-test.jmx'
duration: '10m'
users: 50
enableQualityGates: true
Configuration
Create perf-config.yaml in your repository root:
version: "1.0"
tool: jmeter # jmeter | k6 | gatling
environments:
staging:
host: api.staging.example.com
port: 443
thresholds:
response_time:
p95_max_ms: 1500
error_rate:
max_percent: 1.0
scenarios:
load:
duration: 15m
users: 100
test_file: tests/performance/load-test.jmx
FAQ
Why do I need a license key for the free tier?
The templates are in a private GitHub repository. The license key authenticates your download from the update service and lets us identify genuine users.
Can I use the Community templates with any CI/CD tool?
Yes — Community includes basic templates for all four platforms (GitHub Actions, GitLab CI, Jenkins, Azure DevOps) supporting all three tools (JMeter, K6, Gatling).
Do the templates require Docker?
Yes. All templates execute tests via perf-containers, which requires Docker on the CI agent or runner. GitHub-hosted runners have Docker pre-installed.
Is my test data sent to Martkos IT?
No. All test execution and results stay within your CI/CD environment and infrastructure.