Transition from manual SAP transport management (SE09/STMS) to automated, Git-driven CI/CD pipelines enforcing remote ABAP Test Cockpit (ATC) quality gates and automated regression testing.
Complete blueprints for CI/CD automation, Tier 1/2 isolation, and BTP integration in The SAP Clean Core & ABAP Cloud Handbook.
In classic SAP architectures, code quality validation occurs late in the lifecycle—often during manual transport release (SE09) or during QA staging. This manual approach introduces high regression risk and allows unreleased API usage to bypass architectural controls.
Under the SAP Clean Core Strategy, development shifts entirely to a Git-driven lifecycle powered by gCTS (Git-enabled CTS) or abapGit. Quality gates are integrated directly into Pull Request pipelines (GitHub Actions, GitLab CI, Azure DevOps, Jenkins) via remote ABAP Development Tools (ADT) REST interfaces.
develop or main) unless it passes 100% of automated unit tests and exhibits zero Priority 1 / 2 Clean Core violations against the ABAP_CLOUD_READINESS check variant.
The Central ATC system acts as the single source of truth for compliance checks. Rather than running ATC manually inside SAP GUI, CI/CD runners interact headlessly with the ADT REST API:
POST /sap/bc/adt/atc/runs: Triggers an asynchronous ATC run for a given transport request, package, or commit range using the designated check variant.GET /sap/bc/adt/atc/runs/{runId}: Polls the execution progress until completion.GET /sap/bc/adt/atc/worklists/{worklistId}: Retrieves structured XML findings containing check IDs, message priorities (1: Blocker, 2: Warning, 3: Info), and file line locations.
Automated regression requires decoupling ABAP tests from the database layer. Clean Core pipelines enforce automated unit test runs via /sap/bc/adt/abapunit/runs with statement coverage verification.
POST /sap/bc/adt/abapunit/runs
Content-Type: application/vnd.sap.adt.abapunit.testruns.v1+xml
<aunit:runConfiguration xmlns:aunit="http://www.sap.com/adt/abapunit">
<options>
<measureCoverage>true</measureCoverage>
<riskLevels>harmless,dangerous</riskLevels>
<durations>short,medium</durations>
</options>
<packages>
<package name="ZCL_FINANCE_EXT"/>
</packages>
</aunit:runConfiguration>
Below is an enterprise-grade GitHub Actions pipeline demonstrating the complete validation workflow before transport staging:
name: Clean Core Quality Gate
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Automated ABAP Unit & Coverage
run: python scripts/adt_abap_unit.py --min-coverage 80
- name: Run Central Remote ATC Check
run: python scripts/adt_atc_check.py --variant ABAP_CLOUD_READINESS --strict
- name: Notify PR Status Badge
run: python scripts/update_pr_badge.py
Once pull requests are merged, the deployment stage uploads the verified artifact (MTAR file for CAP/BTP apps, or gCTS commit hash) to SAP BTP Cloud Transport Management (cTMS) via its REST API:
POST /v2/files/upload uploads the build artifact.POST /v2/nodes/{nodeId}/transport-requests attaches the artifact to the DEV-to-QAS node queue.POST /v2/nodes/{nodeId}/actions/import executes non-disruptive blue-green staging in the QA subaccount.Get instant access to complete architectural blueprints, CI/CD templates, and enterprise patterns in The SAP Clean Core & ABAP Cloud Handbook and The SAP BTP & Business AI Architecture Companion.