Jenkins CI pipeline

This commit is contained in:
Reinier Criel 2025-12-30 09:22:03 -08:00
parent 25221b5271
commit 7bfbe1376b

View file

@ -237,6 +237,7 @@ iex "& { $(iwr 'https://github.com/AikidoSec/safe-chain/releases/latest/download
- ✅ **GitHub Actions** - ✅ **GitHub Actions**
- ✅ **Azure Pipelines** - ✅ **Azure Pipelines**
- ✅ **CircleCI** - ✅ **CircleCI**
- ✅ **Jenkins**
## GitHub Actions Example ## GitHub Actions Example
@ -288,4 +289,70 @@ workflows:
- build - build
``` ```
## Jenkins Example
```groovy
pipeline {
agent any
environment {
// Jenkins does not automatically persist PATH updates from setup-ci,
// so add the shims + binary directory explicitly for all stages.
PATH = "${env.HOME}/.safe-chain/shims:${env.HOME}/.safe-chain/bin:${env.PATH}"
}
stages {
stage('Install Node.js') {
steps {
sh '''
set -euo pipefail
# install Node.js + npm (requires root, or passwordless sudo on the agent)
sudo -n apt-get update
sudo -n apt-get install -y nodejs npm
node -v
npm -v
'''
}
}
stage('Install safe-chain') {
steps {
sh '''
set -euo pipefail
# Install Safe Chain for CI
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | sh -s -- --ci
'''
}
}
stage('Verify safe-chain on PATH') {
steps {
sh '''
set -euo pipefail
command -v safe-chain
command -v npm
# Test: npm should resolve to the safe-chain shim
test "$(command -v npm)" = "$HOME/.safe-chain/shims/npm"
'''
}
}
stage('Install project dependencies etc...') {
steps {
sh '''
set -euo pipefail
npm ci
'''
}
}
}
}
```
After setup, all subsequent package manager commands in your CI pipeline will automatically be protected by Aikido Safe Chain's malware detection. After setup, all subsequent package manager commands in your CI pipeline will automatically be protected by Aikido Safe Chain's malware detection.