--
--
- Oorspronkelijk ontwikkeld bij Sun door Kohsuke Kawaguchi
- Begonnen onder de naam Hudson als opensource java-buildserver
- Jenkins sinds 2011 na conflict met Oracle
- Sindsdien doorontwikkeld tot CI tool die met ongeveer alle talen kan werken
- Over 1400 plugins
--
In jenkins v1 kon je jobs in elkaar klikken uit voorgedefinieerde stappen
Sinds Jenkins versie 2 build jobs kunnen worden beschreven in een op Apache Groovy gebaseerde DSL
--
Jenkinsfile (scripted)
node {
stage('Build') {
//
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}
--
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test'){
steps {
sh 'make check'
junit 'reports/**/*.xml'
}
}
stage('Deploy') {
steps {
sh 'make publish'
}
}
}
}
--
- Pipeline
- Node
- Stage
- Step
- Credential handling
--
- init.groovy
--
- Molecule is een testharness voor ansible code
- Kan via diverse drivers testsystemen creeren (docker, vagrant, vmware, cloud)
- test ansible roles & playbooks
--
molecule/
└── default
├── create.yml
├── destroy.yml
├── INSTALL.rst
├── molecule.yml
├── playbook.yml
├── prepare.yml
├── tests
│ └── test_default.rb
└── verify.yml
--
---
dependency:
name: galaxy
driver:
name: vagrant
provider:
name: libvirt
lint:
name: yamllint
platforms:
- name: instance
box: centos/7
provider_options:
uri: '"qemu+ssh://[email protected]/system"'
provisioner:
name: ansible
lint:
name: ansible-lint
scenario:
name: default
verifier:
name: inspec
lint:
name: rubocop
enabled: false
--
- goss
- InSpec
- testinfra
--
- lint
- destroy
- dependency
- syntax
- create
- prepare
- converge
- idempotence
- side_effect
- verify
- destroy
--
https://molecule.readthedocs.io/en/latest/ https://jenkins.io/doc/book/pipeline/ https://wouterhummelink.github.io/slides/jenkins.html