# CI/CD Integration Examples

All examples use the SeaLights Build Scanner CLI:

```bash
java -jar sl-build-scanner.jar -sbt -configfile ./sl-config.json -workspacepath .
```

* **Jenkins:**

```groovy
stage('SeaLights Build') {
    steps {
        sh 'java -jar tools/sl-build-scanner.jar -sbt -configfile sl-config.json -workspacepath $WORKSPACE'
        sh 'sbt sealightsRun'
    }
}
```

* **GitHub Actions:**

```yaml
steps:
  - uses: actions/checkout@v3
  - run: java -jar tools/sl-build-scanner.jar -sbt -configfile sl-config.json -workspacepath $GITHUB_WORKSPACE
  - run: sbt sealightsRun
```

* **GitLab CI:**

```yaml
sealights_build:
  script:
    - java -jar tools/sl-build-scanner.jar -sbt -configfile sl-config.json -workspacepath $CI_PROJECT_DIR
    - sbt sealightsRun
```

### Split Execution Example (Advanced)

In some pipelines, you may want to split scanning and testing into separate steps.

#### Step 1 — Scan Only

```bash
java -jar sl-build-scanner.jar -sbt -configfile ./sl-config.json -executionType scanonly -workspacepath .
```

#### Step 2 — Tests Only

```bash
java -jar sl-build-scanner.jar -sbt -configfile ./sl-config.json -executionType testsonly -workspacepath .
```

{% hint style="info" %}
**Tip**: Ensure the Build Session ID from the scan step is preserved between stages.
{% endhint %}
