Add Jenkinsfile
This commit is contained in:
83
Jenkinsfile
vendored
Normal file
83
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
label "docker-agent-dsrv02"
|
||||||
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
DOCKER_REGISTRY = 'gitea.postio.pl'
|
||||||
|
IMAGE_NAME = 'oxdr-swagger-ui'
|
||||||
|
}
|
||||||
|
|
||||||
|
parameters {
|
||||||
|
string(name: 'BUILD_ID', defaultValue: 'latest', description: 'Image tag / build identifier')
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('Checkout') {
|
||||||
|
steps {
|
||||||
|
git branch: 'main', credentialsId: 'postio-bot-gitea', url: 'https://gitea.postio.pl/postio/microservice-repository.git'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Generate Swagger Docs') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'bufbuild/buf:latest'
|
||||||
|
args '--entrypoint='
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
environment {
|
||||||
|
BUF_CACHE_DIR="${env.WORKSPACE}/.cache"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
dir("${env.WORKSPACE}") {
|
||||||
|
echo "Generating Swagger documentation..."
|
||||||
|
sh "buf generate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Convert OpenAPI to v3') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'python:3-bookworm'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
dir("${env.WORKSPACE}") {
|
||||||
|
echo "Converting OpenAPI V2 to V3..."
|
||||||
|
sh "python3 scripts/process_openapiv2.py"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Docker Image') {
|
||||||
|
steps {
|
||||||
|
echo "Building Docker image..."
|
||||||
|
sh "docker build -t ${DOCKER_REGISTRY}/${IMAGE_NAME}:${BUILD_ID} -f deployments/docker/Dockerfile deployments/docker/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Push Docker Image') {
|
||||||
|
steps {
|
||||||
|
withCredentials([usernamePassword(
|
||||||
|
credentialsId: 'docker-registry-creds', // <-- Update to your Jenkins credentials ID
|
||||||
|
usernameVariable: 'DOCKER_USER',
|
||||||
|
passwordVariable: 'DOCKER_PASS'
|
||||||
|
)]) {
|
||||||
|
echo "Logging into Docker registry..."
|
||||||
|
sh "echo $DOCKER_PASS | docker login ${DOCKER_REGISTRY} -u $DOCKER_USER --password-stdin"
|
||||||
|
echo "Pushing Docker image..."
|
||||||
|
sh "docker push ${DOCKER_REGISTRY}/${IMAGE_NAME}:${BUILD_ID}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
failure {
|
||||||
|
echo "Build failed. Check the console output for details."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user