Files
CompControl.SapFrameworkCon…/CompControl.SapFrameworkConnector/Jenkinsfile
2025-12-19 09:06:09 +01:00

98 lines
3.3 KiB
Groovy

pipeline {
agent { label 'windows-agent' }
environment {
REPO_CLONE_URL = 'https://git.compcontrol.de/CompControl/CompControl.git'
PROJECT_DIR = '.'
NUGET_SOURCE = 'https://nexus.compcontrol.de/repository/nuget-hosted/'
}
triggers {
GenericTrigger(
causeString: 'Triggered by Gitea Webhook',
token: 'compcontrol',
genericVariables: [
[key: 'ref', value: '$.ref']
],
regexpFilterText: '$ref',
regexpFilterExpression: 'refs/heads/main',
printContributedVariables: true,
printPostContent: false
)
}
stages {
stage('Checkout') {
steps {
git branch: 'main',
url: "${env.REPO_CLONE_URL}",
credentialsId: '708b5429-833f-4685-8004-c0f916454cbb'
}
}
// stage('Info') {
// steps {
// dir("${env.PROJECT_DIR}") {
// echo "msbuild -version: "
// bat 'msbuild -version'
// echo "dotnet msbuild -version: "
// bat 'dotnet msbuild -version'
// }
// }
// }
stage('Pack') {
steps {
dir("${env.PROJECT_DIR}") {
bat 'dotnet clean'
bat 'if exist bin\\Release rmdir /s /q bin\\Release'
bat "\"${tool 'MSBuild_2022'}\\MSBuild.exe\" CompControl.csproj /p:Configuration=Release"
bat 'nuget pack . -Properties Configuration=Release -OutputDirectory bin\\Release'
}
}
}
stage('Deploy') {
steps {
dir("${env.PROJECT_DIR}") {
script {
def nupkgFiles = bat(script: 'dir /b bin\\Release\\*.nupkg 2>nul', returnStatus: true)
if (nupkgFiles == 0) {
withCredentials([string(credentialsId: 'nuget-api-key', variable: 'NUGET_API_KEY')]) {
def pushResult = bat(
script: "dotnet nuget push bin\\Release\\*.nupkg --source ${env.NUGET_SOURCE} --api-key %NUGET_API_KEY%",
returnStatus: true
)
if (pushResult == 0) {
echo "NuGet package pushed successfully"
} else {
echo "NuGet push failed (likely version already exists) - continuing pipeline"
unstable("Package version already exists")
}
}
} else {
error "No .nupkg files found in bin\\Release"
}
}
}
}
}
}
post {
always {
cleanWs()
}
failure {
echo 'Pipeline failed!'
}
success {
echo 'Pipeline completed successfully!'
}
}
}