Azure DevOps Integration
Integrate Kosli with Azure DevOps Pipelines for automated compliance and deployment tracking
Overview
Setup
Configure Pipeline Variables
Basic Pipeline
trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
KOSLI_FLOW: 'microservice-api'
IMAGE_NAME: 'myapp:$(Build.BuildId)'
stages:
- stage: Build
jobs:
- job: BuildAndReport
steps:
- script: |
curl -sSL https://cli.kosli.com/install.sh | sh
export PATH=$PATH:$HOME/.kosli/bin
echo "##vso[task.setvariable variable=PATH]$PATH:$HOME/.kosli/bin"
displayName: 'Install Kosli CLI'
- script: docker build -t $(IMAGE_NAME) .
displayName: 'Build Docker Image'
- script: |
kosli report artifact $(IMAGE_NAME) \
--artifact-type docker \
--flow $(KOSLI_FLOW) \
--build-url $(System.TeamFoundationCollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId) \
--commit $(Build.SourceVersion) \
--git-commit-info HEAD
displayName: 'Report Artifact to Kosli'
env:
KOSLI_API_TOKEN: $(KOSLI_API_TOKEN)
KOSLI_ORG: $(KOSLI_ORG)
- stage: Evidence
jobs:
- job: CollectEvidence
steps:
- script: pytest --junitxml=test-results.xml
displayName: 'Run Tests'
- script: |
kosli report evidence test junit \
--flow $(KOSLI_FLOW) \
--name $(IMAGE_NAME) \
--results-file test-results.xml
displayName: 'Report Test Evidence'
env:
KOSLI_API_TOKEN: $(KOSLI_API_TOKEN)
KOSLI_ORG: $(KOSLI_ORG)
- script: trivy image --format json -o scan.json $(IMAGE_NAME)
displayName: 'Security Scan'
- script: |
kosli report evidence generic \
--flow $(KOSLI_FLOW) \
--name $(IMAGE_NAME) \
--evidence-type security-scan \
--attachments scan.json
displayName: 'Report Security Evidence'
env:
KOSLI_API_TOKEN: $(KOSLI_API_TOKEN)
KOSLI_ORG: $(KOSLI_ORG)
- stage: Deploy
jobs:
- deployment: DeployProduction
environment: production
strategy:
runOnce:
deploy:
steps:
- script: kubectl apply -f k8s/
displayName: 'Deploy to Kubernetes'
- script: |
kosli report deployment production \
--flow $(KOSLI_FLOW) \
--name $(IMAGE_NAME)
displayName: 'Report Deployment'
env:
KOSLI_API_TOKEN: $(KOSLI_API_TOKEN)
KOSLI_ORG: $(KOSLI_ORG)
- script: |
kosli snapshot k8s production \
--namespace production
displayName: 'Snapshot Environment'
env:
KOSLI_API_TOKEN: $(KOSLI_API_TOKEN)
KOSLI_ORG: $(KOSLI_ORG)PowerShell Script Option
Next Steps
Last updated