CI/CD Integration

Security testing on
every deployment

Add one step to your GitHub Actions or GitLab CI pipeline. Penetrify scans your staging environment and fails the build when it finds something exploitable — before it reaches production.

< 18 min
per full scan
1 step
to add to any pipeline
0 agents
to install

The problem

Security and CI/CD are still running in separate worlds

Your pipelines run tests, lint checks, type checks, and end-to-end suites on every commit. Then once a year, you book a penetration test — and wait three weeks for results that cover the code you shipped last quarter.

Penetrify closes that gap. A single pipeline step runs a full penetration test against your staging environment after every deployment. Critical findings fail the build. Low findings surface in the report. Security becomes part of your definition of done.

Before Penetrify

Annual pentest · 3-week wait · findings land after code ships · 51 weeks of unreviewed changes

After Penetrify

Scan on every deploy · findings in <18 min · critical = build fails · zero unreviewed deploys

Setup in 3 steps

From zero to continuous security testing in 30 minutes

01

Get your API key

Sign up at app.penetrify.cloud. Your API key is on the dashboard — copy it into your CI secrets store as PENETRIFY_API_KEY.

< 2 minutes
Settings → API Keys → Generate
02

Add the pipeline step

Paste the Penetrify scan step into your pipeline YAML, after your staging deployment job. Set the target URL and tell it which severities should fail the build.

< 10 minutes
--fail-on critical,high
03

Push and watch it run

Open a pull request. Penetrify scans staging automatically. Findings appear in the pipeline log and a full report is saved as a build artifact.

< 18 min per scan
✓ No findings → merge. ✗ Critical → build fails.

Pipeline flow

Where Penetrify fits in your pipeline

⚙️
Build
Compile, lint, unit tests
🚀
Deploy staging
Push to staging env
🔍
Penetrify scan
Full pentest — ~18 min
🔒
Gate
Critical/High → fail build
Deploy prod
Only clean code ships
CRITICAL/HIGHBuild fails · deployment blocked · team notified
MEDIUM/LOWReported in artifact · build continues · tracked

Integration code

Copy, paste, ship

name: CI
 
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
 
jobs:
deploy-staging:
runs-on: ubuntu-latest
outputs:
staging_url: ${{ steps.deploy.outputs.url }}
steps:
- uses: actions/checkout@v4
- name: Deploy to staging
id: deploy
run: echo "url=https://staging-${{ github.sha }}.myapp.io" >> $GITHUB_OUTPUT
 
penetrify-scan:
needs: deploy-staging
runs-on: ubuntu-latest
steps:
- name: Run Penetrify security scan
uses: penetrify/scan-action@v1
with:
url: ${{ needs.deploy-staging.outputs.staging_url }}
api-key: ${{ secrets.PENETRIFY_API_KEY }}
fail-on: critical,high
report-format: html
output: penetrify-report.html
 
- name: Upload scan report
if: always()
uses: actions/upload-artifact@v4
with:
name: security-report
path: penetrify-report.html

Why it matters

What changes when security lives in the pipeline

Vulnerabilities caught before production

A finding in CI costs a developer 20 minutes to fix. The same vulnerability discovered by a customer — or an attacker — costs weeks of incident response, breach notification, and reputational damage. Penetrify finds it first.

🔁

Regressions caught automatically

Fixed a vulnerability last sprint? Penetrify re-tests it on every subsequent scan. If the fix is accidentally reverted — in a dependency update, a merge conflict, or a refactor — the build fails before the regression reaches staging.

📋

Compliance evidence, automatically

SOC 2, PCI DSS, and ISO 27001 require evidence of regular security testing. Every Penetrify scan produces a timestamped, structured report. Your audit evidence grows automatically with every deployment.

👩‍💻

No security team required

Penetrify is designed for development teams. Findings come with reproduction steps and fix guidance written for engineers — not security analysts. Developers fix vulnerabilities in the same workflow they use to fix test failures.

🚀

Ship faster with confidence

The fastest teams are the ones who catch problems early. Penetrify removes the security-shaped bottleneck at the end of the release cycle — there's nothing to gate on at release if every PR has already been tested.

💰

Replaces the annual pentest cost

One manual penetration test engagement costs $10,000–$50,000 and tests your code on one day. Penetrify's Professional plan is $600/month — for continuous coverage that manual testing can't match.

Works with any pipeline

GitHub ActionsGitLab CICircleCIJenkinsBitbucket PipelinesAzure DevOpsAWS CodePipelineAny CLI

FAQ

CI/CD integration questions

Related pages

Get started

Add security to your pipeline today

One API key. One pipeline step. Security testing on every deployment. Starts at $50/month.