I've got a ton of experience with docker, bash, and jenkins pipeline (which means groovy too). I can convert your freestyle jobs to jenkins pipeline "jenkinsfile"s.
Here's an example of an existing Jenkinsfile that I manage:
node('mymachine') {
library (
identifier: 'jenkins-pipeline-utils@master',
retriever: modernSCM([$class: 'GitSCMSource',
credentialsId: 'github-oauth-userpass',
]))
stage('Prepare Workspace') {
deleteDir();
cleanNode()
}
try{
stage('Git Clone') {
[login to view URL]()
}
stage('Build code') {
[login to view URL]("frontend")
}
stage('Run unit tests') {
[login to view URL]("frontend")
}
stage('Dockerize') {
[login to view URL]()
}
}
}
}
I removed some details for privacy & so that it would fit in the bid proposal. This Jenkinsfile builds, tests, and bakes a go service into a docker image. This Jenkinsfile continues on to push the docker image to a registry and then trigger another jenkins job to deploy it and run integration tests against it. If it encounters errors, it can continues and report to the details to slack.
I currently own about 10 separate Jenkinsfiles. Since a lot of the code would be duplicated between my jenkinsfiles, I have created a jenkins pipeline library which I use.
I would be happy to do this for you.