Jenkins
Jenkins is a popular and powerful CI solution. With Jenkins, you can create pipelines using the DSL Groovy, which is based on Java. Jenkins is a very flexible tool and can be used to create complex pipelines.
What does Aeolus generate?
Aeolus generates a simple Jenkinsfile, that is then used in a simple pipeline. Each action from the input file is translated into a stage in the Jenkinsfile. One example of a Jenkinsfile generated by Aeolus is:
pipeline {
agent {
docker {
image 'ls1tum/artemis-maven-template:java17-20'
}
}
parameters {
string(name: 'current_lifecycle', defaultValue: 'working_time', description: 'The current stage')
}
environment {
REPOSITORY_URL = 'https://github.com/ls1intum/Aeolus.git'
}
stages {
stage('aeolus') {
steps {
dir('aeolus') {
checkout([$class: 'GitSCM',
branches: [[name: 'develop']],
doGenerateSubmoduleConfigurations: false,
userRemoteConfigs: [[
name: 'aeolus',
url: "${REPOSITORY_URL}"
]]
])
}
}
}
stage('script-action') {
steps {
sh '''#!/usr/bin/env bash
echo "I am a script action"
'''
}
}
stage('template-action_0') {
when {
allOf {
expression { params.current_lifecycle != 'preparation' }
}
}
environment {
HELLO = 'world'
WHO_TO_GREET = 'hello'
}
steps {
sh '''#!/usr/bin/env bash
echo "Hello ${WHO_TO_GREET}"
'''
}
}
}
}