I've got a strange problem with a declarative pipeline and powershell, it 
seems the script is never executed.
The script is in a managed file.
The pipeline:

pipeline {
    agent any
    triggers { 
        pollSCM('H * * * *') 
    }
    tools {
        msbuild "DefaultMSBuild"
    }
    environment {
        solution = 'Project.sln'
        project = 'Project\\Project.csproj'
        projectDir = 'Project\\Project'
        key = credentials('proget-testauto-apikey')
    }
    stages {
        stage('Build and test') {
            steps {
                echo "Getting version for ${env.projectDir}"
                configFileProvider([configFile(fileId: 
'52c08128-fa6f-4c79-8a43-ff4f6dd13dbd', variable: 'script')]) {
                    powershell script: "${script} -projecDir 
${env.projectDir}"
                   script { res = powershell script: "${script} -projecDir 
${env.projectDir}" 
                    echo "results: ${res}"
                    }
                }
                echo 'Restore nugets..'
                bat "%NUGET% restore Project.sln"
                echo "Building solution : Project.sln"
                script {
                    scanner = tool name: 'NewSonarScanner', type: 
'hudson.plugins.sonar.MsBuildSQRunnerInstallation'
                    props = readProperties text: '${res}'
                    withSonarQubeEnv('DefaultSonart') {
                        bat "${scanner}\\SonarQube.Scanner.MSBuild.exe 
begin /k:Project /n:Project /v:${props.PackageVersion} 
/d:sonar.host.url=%SONAR_HOST_URL% /d:sonar.login=%SONAR_AUTH_TOKEN% 
/d:sonar.cs.nunit.reportsPaths=\"NTestResult.xml\" 
/d:sonar.cs.opencover.reportsPaths=\"opencover.xml\" /d:sonar.verbose=true"
                        bat "\"${tool name: 'DefaultMSBuild', type: 
'msbuild'}\"\\msbuild.exe Project.sln /m /target:clean,build 
/p:Configuration=Release" //;VisualStudioVersion=12.0
                        nunitReturn = bat returnStatus: true, script: 
"%OPENCOVER% -output:\"%WORKSPACE%\\opencover.xml\" -returntargetcode 
-register:user -target:\"%NUNIT%\" 
-targetargs:\"%WORKSPACE%\\Project.Tests\\bin\\Release\\Project.Tests.dll 
-v --result=NTestResult.xml;format=nunit3 --work=%WORKSPACE%\" "
                        bat "${scanner}\\SonarQube.Scanner.MSBuild.exe end"
                    }
                }
            }
        }
        stage('Positive result') {
            when {
              expression { nunitReturn == 0 }
            }
            steps {
                echo "Archiving Project"
                archiveArtifacts artifacts: '**/bin/Release/**', 
onlyIfSuccessful: true
                bat "%NUGET% pack Project\\Project.csproj -Prop 
Configuration=Release"
                bat "%NUGET% push 
Project\\Project.${props.PackageVersion}.nupkg -s %REPOTESTAUTO% ${key}"
                
            }
        }
        stage('Negative result'){
            when {
              expression { nunitReturn > 0 }
            }
            steps {
                script { currentBuild.result = "UNSTABLE" }
            }
        }
    }
    post {

    failure {   
        mail(from: "[email protected]", 
           to: "[email protected]", 
           subject: "Error in ${env.JOB_NAME}", 
           body: "See at ${env.BUILD_URL}")
        }

    unstable {   
        mail(from: "[email protected]", 
           to: "[email protected]", 
           subject: "Test failed in ${env.JOB_NAME}", 
           body: "See at ${env.BUILD_URL}")
        }
    }
    options {
        // For example, we'd like to make sure we only keep 10 builds at a 
time, so
        // we don't fill up our storage!
        buildDiscarder(logRotator(numToKeepStr:'20'))
        timeout(time: 60, unit: 'MINUTES')
    }
}

the script:
param([Parameter(Mandatory=$true)][string]$projectDir)
$packageVersion = ''
Write-Output "Executed=True"
Write-Output 
"PropFile=:$env:WORKSPACE\\$projectDir\\Properties\\AssemblyInfo.cs'"
$content = Get-Content ($env:WORKSPACE + '\\'  + $projectDir + 
'\\Properties\\AssemblyInfo.cs');
foreach ($line in $content)
{
if ($line -match '\[assembly: 
AssemblyVersion\("((\d+)\.?(\d*)\.?(\d*)?[\.-]?([\d\*]*)?([a-zA-Z]*)?(\d*?))"\)\]')
{
Write-Output "AssemblyFullVersion=$($Matches[1])"
Write-Output "AssemblyVersion=$($Matches[2]).$($Matches[3]).$($Matches[4])"
Write-Output "AssemblyMajor=$($Matches[2])"
Write-Output "AssemblyMinor=$($Matches[3])"
Write-Output "AssemblyRevision=$($Matches[4])"
Write-Output "AssemblyBuild=$($Matches[5])"
Write-Output "AssemblySuffix=$($Matches[6])"
Write-Output "AssemblyNumber=$($Matches[7])"

if ($packageVersion -eq ''){
$packageVersion = $Matches[1];
}
}
elseif ($line -match '\[assembly: 
AssemblyInformationalVersion\("((\d+)\.?(\d*)\.?(\d*)?[\.-]?([\d\*]*)?([a-zA-Z]*)?(\d*?))"\)\]')
{
Write-Output "AssemblyInfoFullVersion=$($Matches[1])"
Write-Output 
"AssemblyInfoVersion=$($Matches[2]).$($Matches[3]).$($Matches[4])"
Write-Output "AssemblyInfoMajor=$($Matches[2])"
Write-Output "AssemblyInfoMinor=$($Matches[3])"
Write-Output "AssemblyInfoRevision=$($Matches[4])"
Write-Output "AssemblyInfoBuild=$($Matches[5])"
Write-Output "AssemblyInfoSuffix=$($Matches[6])"
Write-Output "AssemblyInfoNumber=$($Matches[7])"
$packageVersion = $Matches[1]
}
}

Write-Output "PackageVersion=' + $packageVersion"

This is wha i get in the logs

Pipeline] configFileProviderprovisioning config files...
copy managed file [PSReadVersionNew] to 
file:/R:/jenkins/workspace/Libraries/Project@2@tmp/config8563286677318369656tmp[Pipeline]
 {[Pipeline] script[Pipeline] {[Pipeline] powershell

[SigningLibrary@2] Running PowerShell script[Pipeline] echoresults: [Pipeline] 
}[Pipeline] // script[Pipeline] }Deleting 1 temporary files[Pipeline] // 
configFileProvider[Pipeline] echoRestore nugets..[Pipeline] bat

[SigningLibrary@2] Running batch script

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/e693d2e9-759f-4a48-9a7b-0db5d341e65e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to