OP#176 initial commit
This commit is contained in:
124
Jenkinsfile
vendored
Normal file
124
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
pipeline {
|
||||
agent {
|
||||
label 'general'
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
deleteDir() /* clean up our workspace */
|
||||
}
|
||||
success {
|
||||
echo 'Pipeline finished successfully!'
|
||||
updateGitlabCommitStatus name: 'build', state: 'success'
|
||||
}
|
||||
failure {
|
||||
echo 'I failed :('
|
||||
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'support@confdroid.com', sendToIndividuals: true])
|
||||
updateGitlabCommitStatus name: 'build', state: 'failed'
|
||||
}
|
||||
}
|
||||
|
||||
options {
|
||||
gitLabConnection('gitlab.confdroid.com')
|
||||
}
|
||||
|
||||
stages {
|
||||
|
||||
stage('pull master') {
|
||||
steps {
|
||||
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
|
||||
sh '''
|
||||
git config user.name "Jenkins Server"
|
||||
git config user.email jenkins@confdroid.com
|
||||
# Ensure we're on the development branch (triggered by push)
|
||||
git checkout development
|
||||
# Create jenkins branch from development
|
||||
git checkout -b jenkins-build-$BUILD_NUMBER
|
||||
# Optionally merge master into jenkins to ensure compatibility
|
||||
git merge origin/master --no-ff || { echo "Merge conflict detected"; exit 1; }
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('SonarScan') {
|
||||
steps {
|
||||
withCredentials([string(credentialsId: 'sonar-token', variable: 'SONAR_TOKEN')]) {
|
||||
sh '''
|
||||
/opt/sonar-scanner/bin/sonar-scanner \
|
||||
-Dsonar.projectKey=prometheus-pg-adapter \
|
||||
-Dsonar.sources=. \
|
||||
-Dsonar.host.url=https://sonarqube.confdroid.com \
|
||||
-Dsonar.token=$SONAR_TOKEN
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('build and push image to gitlab') {
|
||||
steps {
|
||||
withCredentials([usernamePassword(credentialsId: '864a3edb-9d6e-4ad1-b382-22eeb0ea6b8a', passwordVariable: 'pw', usernameVariable: 'un')]) {
|
||||
sh '''
|
||||
set +xe
|
||||
docker login gitlab.confdroid.com:5050 -u $un -p $pw
|
||||
docker build --network=host -t gitlab.confdroid.com:5050/containers/prometheus-pg-adapter:1.0.0 .
|
||||
docker build --network=host -t gitlab.confdroid.com:5050/containers/prometheus-pg-adapter:latest .
|
||||
docker push gitlab.confdroid.com:5050/containers/prometheus-pg-adapter:1.0.0
|
||||
docker push gitlab.confdroid.com:5050/containers/prometheus-pg-adapter:latest
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('build and push image to gitea') {
|
||||
steps {
|
||||
withCredentials([usernamePassword(credentialsId: 'Jenkins-gitea', passwordVariable: 'pw', usernameVariable: 'un')]) {
|
||||
sh '''
|
||||
set +xe
|
||||
docker login gitea.confdroid.com -u $un -p $pw
|
||||
docker build --network=host -t gitea.confdroid.com/confdroid/prometheus-pg-adapter:1.0.0 .
|
||||
docker build --network=host -t gitea.confdroid.com/confdroid/prometheus-pg-adapter:latest .
|
||||
docker push gitea.confdroid.com/confdroid/prometheus-pg-adapter:1.0.0
|
||||
docker push gitea.confdroid.com/confdroid/prometheus-pg-adapter:latest
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('update repo') {
|
||||
steps {
|
||||
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
|
||||
sh '''
|
||||
git config user.name "Jenkins Server"
|
||||
git config user.email jenkins@confdroid.com
|
||||
git add -A && git commit -am "Recommit for updates in build $BUILD_NUMBER" || echo "No changes to commit"
|
||||
git push origin HEAD:master
|
||||
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Mirror to Gitea') {
|
||||
steps {
|
||||
withCredentials([usernamePassword(
|
||||
credentialsId: 'Jenkins-gitea',
|
||||
usernameVariable: 'GITEA_USER',
|
||||
passwordVariable: 'GITEA_TOKEN')]) {
|
||||
script {
|
||||
// Checkout from GitLab (already done implicitly)
|
||||
sh '''
|
||||
git checkout master
|
||||
git pull origin master
|
||||
git branch -D development
|
||||
git branch -D jenkins-build-$BUILD_NUMBER
|
||||
git remote add master https://gitea.confdroid.com/confdroid/prometheus-pg-adapter.git
|
||||
git -c credential.helper="!f() { echo username=${GITEA_USER}; echo password=${GITEA_TOKEN}; }; f" \
|
||||
push master --mirror
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user