Jenkins
Correlate Jenkins jobs, builds, stages, test reports and logs with a release or an incident window.
What it covers
Jenkins provides release and CI evidence: failed jobs, build history with timestamps, pipeline stages, test reports, and console logs that can identify the deployed revision or a failed rollout step.
Connect
Jenkins usually runs a separate server per environment, so tie each connection to one environment:
reckon connect jenkins-prod --org acme --provider jenkins --for-env prod
reckon connect jenkins-uat --org acme --provider jenkins --for-env uatFill in each connection's file, for example
~/.reckon/orgs/acme/secrets/jenkins-prod.env:
JENKINS_URL=https://jenkins.example.com
JENKINS_USER=readonly-bot
JENKINS_TOKEN=replace_meJENKINS_INSECURE is optional. Instead of the file, you can run
reckon login jenkins-prod in your own terminal: it runs jenkins login and
keeps the profile in that connection's private config.
reckon verify jenkins-prod runs jenkins whoami -o json.
Read-only contract
Reckon runs jenkins with JENKINS_READ_ONLY=true and
JENKINS_NO_INPUT=true, so the CLI refuses builds, stops, deletes and other
writes. It also refuses --server, --user, --token, --insecure and their
short forms (-s, -u, -t, -k), --profile, --read-only, --no-input
and the artifact download flags --download, -d and --output-dir, and the
login, config and update commands. Give the
Jenkins user read-only permissions as well.
Key commands
reckon run jenkins -- job list --recursive --status FAILURE -o json
reckon run jenkins -- build list <job> --limit 25 -o json
reckon run jenkins -- build get <job> <number> -o json
reckon run jenkins -- build stages <job> <number> -o json
reckon run jenkins -- build test-report <job> <number> -o json
reckon run jenkins -- build log <job> <number>build list has no time flags: filter by the returned timestamps. A successful
build is not proof that its revision was deployed.