Powershell Yarn Execution

440 views
Skip to first unread message

Joe Cavanaugh

unread,
Mar 7, 2018, 5:51:41 PM3/7/18
to Jenkins Users
    stage('Build') {
      steps
{
            powershell
'''
            Write-Output "Starting Yarn Install"
            try {
                \$ErrorActionPreference = '
Stop'
                yarn install
            } catch {
                Write-Output "Install failed : \$PSItem"
            }
            '''

     
}
   
}

However, when I run the command on the server itself in the directory, all i get is 
yarn install v1.5.1
yarn : warning package.json: No license field
At line:1 char:19
+     try {         yarn install --frozen-lockfile     } catch {        ...
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (warning package.json: No license field:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

warning s...@0.0.0: No license field
[1/4] Resolving packages...
success Already up-to-date.
Done in 2.16s.
[blwdsoabuild4]: PS C:\Jenkins\workspace\SOE.POC> echo $LASTEXITCODE
0

Seems to me that the powershell method is incorrectly interpreting the warning as a remote exception... The catch never gets hit, and even if I set the $global:LASTEXITCODE to zero after the yarn install line it still fails. 

Any hints as to what else to try or consider would be greatly appreciated. Yarn Version is 1.5.2 and Node is LTS (8.9.4) with Powershell version 5.1.

Joe Cavanaugh

unread,
Mar 8, 2018, 10:02:38 AM3/8/18
to Jenkins Users
I didn't post the error message : 
ERROR: script returned exit code 1
Finished: FAILURE

Joe Cavanaugh

unread,
Mar 8, 2018, 10:20:34 AM3/8/18
to Jenkins Users
bat 'yarn install' works fine. It seems that the powershell key word does not work correctly in declarative pipelines consistently. 

Slide

unread,
Mar 8, 2018, 10:31:45 AM3/8/18
to jenkins...@googlegroups.com
Have you tried running the same command in powershell directly to see if the behavior is just powershell itself?

--
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 jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/6b3b58f6-a870-43d6-800f-6396329ad8b0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Joe Cavanaugh

unread,
Mar 8, 2018, 12:17:10 PM3/8/18
to Jenkins Users
Yep - the middle section of the first post is when I ran directly as the user on the server. The error codes are fine and the build worked just great. It appears to only be an issue when transferring back information to Jenkins to continue doing the pipeline. 

Joe Cavanaugh

unread,
Mar 8, 2018, 12:22:04 PM3/8/18
to Jenkins Users
[SOE.POC] Running batch script C:\Jenkins\workspace\SOE.POC\SOE.POC>yarn install --frozen-lockfile
yarn install v1.5.1

warning package.json: No license field
warning s...@0.0.0: No license field
[1/4] Resolving packages...
success Already up-to-date.
Done in 1.33s.
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // timeout
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
For comparison  
[SOE.POC] Running PowerShell script
yarn install v1.5.1
powershell.exe : warning package.json: No license field
At C:\Jenkins\workspace\SOE.POC\SOE.POC@tmp\durable-c8ac6911\powershellWrapper.ps1:3 char:1
+ & powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : NotSpecified: (warning package.json: No license field:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

warning s...@0.0.0: No license field [1/4] Resolving packages...
success Already up-to-date.
Done in 2.41s.
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // timeout
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE
Reply all
Reply to author
Forward
0 new messages