Continuous Integration builds with Jenkins and PSoC Creator

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NiBu_1198441
Level 2
Level 2
5 replies posted 5 questions asked First question asked

I am trying to get a CI build going with Jenkins. I followed these instructions to get a headless build working: https://community.cypress.com/docs/DOC-10865

This works fine from a command line or from a batch file, but when I call the same batch files from Jenkins I get the following failure message:

Error: mgr.M0027: Argument passed in is not serializable.

Parameter name: value (App=cyprjmgr)

   at System.Collections.ListDictionaryInternal.Add(Object key, Object value)

   at CyDesigner.Common.Base.CyRsltOrErr`1.get_Value()

   at CyDesigner.Common.Db.DeviceDb.Catalog.CyWcdMgr.get_InstallBaseDir()

   at CyDesigner.Common.Db.DeviceDb.Catalog.CyDcPlugin.get_DeviceDataPath()

   at CyDesigner.Common.Db.DeviceDb.Catalog.CyDcPlugin.PostPluginsLoadedInit()

   at CyDesigner.Framework.CyPlugin.InitializePlugins(IEnumerable`1 plugins)

   at CyDesigner.Common.ProjMgmt.PrjMgrTool.CyPrjMgrTool.LoadPlugins()

   at CyDesigner.Common.ProjMgmt.PrjMgrTool.CyPrjMgrTool.Run(CyApp app, CyErr& err)

   at CyDesigner.Common.ProjMgmt.PrjMgrTool.CyPrjMgrTool.Main(String[] args)

The full Jenkins output is shown below. Has anyone else had luck with this?

Started by user anonymous

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc

[Switchbox_psoc] $ cmd /c call C:\Windows\TEMP\hudson5210422228259853648.bat

C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc>cd PSoC\Switchbox

C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc\PSoC\Switchbox>dir

Volume in drive C has no label.

Volume Serial Number is 747E-8C27

Directory of C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc\PSoC\Switchbox

01/12/2018 01:51 PM <DIR> .

01/12/2018 01:51 PM <DIR> ..

01/12/2018 02:38 PM <DIR> Switchbox.cydsn

01/12/2018 01:51 PM 1,265 Switchbox.cywrk

  1 File(s) 1,265 bytes

  3 Dir(s) 43,292,274,688 bytes free

C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc\PSoC\Switchbox>"c:\Program Files (x86)\Cypress\PSoC Creator\4.1\PSoC Creator\bin\cyprjmgr.exe" -w "C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc\PSoC\Switchbox\Switchbox.cywrk"

Error: mgr.M0027: Argument passed in is not serializable.

Parameter name: value (App=cyprjmgr)

  at System.Collections.ListDictionaryInternal.Add(Object key, Object value)

  at CyDesigner.Common.Base.CyRsltOrErr`1.get_Value()

  at CyDesigner.Common.Db.DeviceDb.Catalog.CyWcdMgr.get_InstallBaseDir()

  at CyDesigner.Common.Db.DeviceDb.Catalog.CyDcPlugin.get_DeviceDataPath()

  at CyDesigner.Common.Db.DeviceDb.Catalog.CyDcPlugin.PostPluginsLoadedInit()

  at CyDesigner.Framework.CyPlugin.InitializePlugins(IEnumerable`1 plugins)

  at CyDesigner.Common.ProjMgmt.PrjMgrTool.CyPrjMgrTool.LoadPlugins()

  at CyDesigner.Common.ProjMgmt.PrjMgrTool.CyPrjMgrTool.Run(CyApp app, CyErr& err)

  at CyDesigner.Common.ProjMgmt.PrjMgrTool.CyPrjMgrTool.Main(String[] args)

cyprjmgr [-h] [-ver] [-wrk <workspace_name>] [-clean] [-build] [-rebuild]

[-archive <archive_level> <archive_as_zip>] [-t <toolchain>] [-c <config>]

[-p <TopProject>] [-n <TopDesign>] [-d <selectedDev>]

[-m <paramsFile>] [-import <Source_Project> <Source_Component>]

[-rename <component_name> <new_name>] [-delete <component_name>]

[-exclude <component_name>] [-l <NewPrjName>]

[-s] [-v <visibility>] [-prj <Target_Project>] [-cmp <Target_Component>]

[-addprj <prj_path>] [-cp <path>] [-con <Target_Project>] [-batch <file_name>]

[-updateComp <source_project> <source_component>] [-updatePrj <source_project>]

[-updateInst] [-updateDWInst] [-forceWrite] [-noCustBuild] [-noRefresh]

[-ol <compiler optimization level>] [-warn <High|Low|None>]

[-buildPreCompCust <Project>] [-updateInstIfNeeded]

[-ignoreDepsWarning] [-allowIllegalUpdates] [-export <IDE>] [-pdlPath <path>]

The following options are tool wide:

  -h Displays this help message

  -ver Displays the version and build number of cyprjmgr

The following options apply to the chosen workspace:

  -wrk, -w Specifies the workspace to be used

  -prj Specifies the target project on which all the command line

  options will be targeted. In case target project is not

  specified, Top Project of the workspace becomes the target

  project

  -p Sets the Top Project in the workspace

  -cmp, -o Specifies the target component on which all the library options

  will be targeted. In case target component is not specified,

  the Top Block of the Target Project becomes the Target Component

  -addprj Adds an existing project <prj_path> to the workspace

  -l Adds a new empty library project with name <NewPrjName> to the

  workspace

  -d Sets the selected device of projects to be built

  -cp Copies the entire workspace to the location specified by

  <path>, all command line options will act on the copy created

The following four options target the entire workspace unless the

target project is set with -prj:

  -clean Cleans the workspace/project

  -build Builds the workspace/project

  -rebuild Rebuilds the workspace/project

  -archive Archives the workspace/project with different archiver levels

  (complete/typical), and as zip or nozip

The following options apply to the target project:

  -t Sets the tool chain the action should use (Keil, ARM etc.)

  -c Sets configuration the action should use (Debug, Release)

  -ol Sets compiler optimization level

  -warn Sets compiler warning level

  -n Sets the Top Design of the Top Project

  -m Parameters file that will override the default parameter values

  of the schematic in the TopDesign of the Top Project

  -import Imports the Source Component from the Source Project into the 

  target project of the workspace

  -rename Renames component_name in target project of the workspace to 

  new_name

  -delete Deletes component from the disc

  -exclude Excludes component from the target project of the workspace

  -s Lists the external dependencies of the target project

  -v Sets the visibility of the target component to true/false

  -con Checks the consistency of the target project of the workspace

  -batch Reads a file containing a series of commands, one on each line.

  Executes the commands one by one. When batch option is used, all

  other optional switches are ignored

-updateComp Updates a component in the Target Project from the source project

-updatePrj Updates the Target Project from the Source Project

-updateInst Updates the instances on the schematic with the latest components

-forceWrite Makes read-only files writable and then makes the change

-noCustBuild Delay building of customizer DLLs until the end (e.g., during

  imports)

-noRefresh Disable updates from the refresh manager (Use with extreme care)

-buildPreCompCust Build customizer for a project

-updateDWInst Updates the design-wide instances with the latest components

-updateInstIfNeeded Update instances to minimum valid version

-ignoreDepsWarning Suppress SystemDepNotFoundOnDisk warning while building

  primitives

-allowIllegalUpdates Allows updating instances to latest version, even if illegal

  -export Exports the project to the target IDE. Valid targets are EWA, Eclipse and uVision

-generateDescFiles For all specified projects that have 'Generate description files'

  enabled, generates the description files.

-verifyDescFileEnabled Verifies that all specified projects have 'Generate description files' enabled.

-verifyDescFileContents Verifies that all specified projects (that have 'Generate description

  files' enabled) have generated files that are in-sync with the current

  version of their source files.

  -pdlPath Sets the path to the PDL file for the project

C:\Program Files (x86)\Jenkins\workspace\Switchbox_psoc\PSoC\Switchbox>exit 6

Build step 'Execute Windows batch command' marked build as failure

Finished: FAILURE

0 Likes
1 Solution
NiBu_1198441
Level 2
Level 2
5 replies posted 5 questions asked First question asked

It has something to do with the Jenkins service and what user it runs as. I had to create a user with local admin access and run the service with that user.

View solution in original post

1 Reply
NiBu_1198441
Level 2
Level 2
5 replies posted 5 questions asked First question asked

It has something to do with the Jenkins service and what user it runs as. I had to create a user with local admin access and run the service with that user.