InstallAware and ContinuaCI

Got a problem you cannot solve? Try here.
InstallAware@Jelich.info
Posts: 41
Joined: Mon Apr 13, 2009 8:58 am

InstallAware and ContinuaCI

Postby InstallAware@Jelich.info » Mon Sep 14, 2015 12:48 am

Hi Support Team,

We use ContinuaCI to build our software.

During the build process with ContinuaCI the sources are checked out from the repository in a folder like C:\ContinuaCI\Agent\Ws\2222\MyProject. The entire build process is based on that folder. For example: the sources are checked out to C:\ContinuaCI\Agent\Ws\2222\MyProject\Source, the Binaries are build in C:\ContinuaCI\Agent\Ws\2222\MyProject\Bin. The number changes on any build.

My original files are located in C:\Program Files\MyProject. The Sources are in C:\Program Files\MyProject\Source, the Binaries are in C:\Program Files\MyProject\Bin.

My InstallAware Project is configured in the IDE (Setup Architecture / Files) to copy a file C:\Program Files\MyProject\Bin\SomeFile.exe to $TARGETDIR$.

When I build a Setup with the IDE, the Setup is correct.

When I build a Setup with ContinuaCI, the Setup is incorrect, because it uses (as defined) C:\Program Files\MyProject\Bin\SomeFile.exe, but it should use the shortly before new built Bin\SomeFile.exe from the folder C:\ContinuaCI\Agent\Ws\2222\MyProject.

I can solve this issue by defining relative paths in Setup Architecture / Files ("..\Bin\SomeFile.exe"). But this is very time-consuming and error-prone.

Is there a way to make the file specifications 'relative' by default?

Or can I change all file specifications by a specific mapping (e.g. change all "C:\Program Files\MyProject" to "C:\ContinuaCI\Agent\Ws\2222\MyProject")? Probably by command line?

I tried to use a Compiler Variable #ROOT# and set it to "C:\Program Files\MyProject". So I can set it via command line to "C:\ContinuaCI\Agent\Ws\2222\MyProject". But the file specification #ROOT#\bin is not recognized by InstallAware ("Error during build: Unable to copy file...").

Best regards
Michael

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: InstallAware and ContinuaCI

Postby FrancescoT » Mon Sep 14, 2015 1:57 pm

Dear Michael,

it doesn't exist an option to set paths as 'relative' by default. The relative path has to be specified with the "install Files" command.

The only possible option, it's to use a CUSTOM COMPILER variable and then to use the same with your file paths.

E.g. #MYPATH#\Bin\SomeFile.exe

In this way MYPATH can be assigned from IA IDE (SHIFT+CTRL+F11 - then Compiler Variables) or passed as command line parameter to the MiaBuild tool.

However, you need to re-edit all the file paths defined with your project.

Hope this helps you.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

InstallAware@Jelich.info
Posts: 41
Joined: Mon Apr 13, 2009 8:58 am

Re: InstallAware and ContinuaCI

Postby InstallAware@Jelich.info » Tue Sep 15, 2015 1:50 pm

Hi Francesco,

thank you for your answer.

Please read my last sentence from my initial post: using the compiler variable does not work, even if the file exists ("Error during build: Unable to copy file...").

Any idea? How can I help you to reproduce the error?

Best regards
Michael

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: InstallAware and ContinuaCI

Postby FrancescoT » Wed Sep 16, 2015 10:41 am

Dear Micheal,

I used the approach described with my previous reply (#MYPATH#\Bin\SomeFile.exe) and worked fine.

You could try to send me a very "VERY" small project that replicates the issue.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

InstallAware@Jelich.info
Posts: 41
Joined: Mon Apr 13, 2009 8:58 am

Re: InstallAware and ContinuaCI

Postby InstallAware@Jelich.info » Fri Sep 18, 2015 3:19 am

Hi Francesco,

Thank you for your answer. You're right. #ROOT# works well. Probably I inadvertently used %ROOT% or $ROOT$ as known from other products...

I was on my way to circumvent the manual re-edit of all paths by means of a FinalBuilder Project - until I recognized that IA provides via Project, File Paths the Refactor Paths feature which exactly provides what I need: replace paths by variables... :-)

Best regards
Michael

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: InstallAware and ContinuaCI

Postby FrancescoT » Fri Sep 18, 2015 10:47 am

:D
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

InstallAware@Jelich.info
Posts: 41
Joined: Mon Apr 13, 2009 8:58 am

Re: InstallAware and ContinuaCI

Postby InstallAware@Jelich.info » Fri Nov 06, 2015 3:43 pm

I'd like to share my now working solution to (with?) anyone who is interested and using FinalBuilder/ContinuaCI: I decided not to change the setup via 'Refactor Paths'. In case the project is changed via the IDE it is very likely that refactor paths is forgotten... In that case the build will fail. Therefore I leave the files as they are made by IDE.

- In ContinuaCI the files are checked out from repository to the workspace folder
- ContinuaCI starts a FinalBuilder project to create the setup (the root equivalent from the workspace is shipped as parameter)
- in the FinalBuilder Project a fileset is defined ("*.mia" and "*.mia.txt")
- for any file in the fileset the "Text Find / Replace" action ('Search in File' / 'write back to source file') changes any "C:\ProgramFiles\Company\Project\" to "#ROOT#\"
- the FinalBuilder InstallAware Action is invoked with the modified files and a Compiler Variable ROOT set to the provided root equivalent from the Agent Workspace

That way I do not take care about the #ROOT# replacement in the IDE and the build grabs the files from the ContinuaCI Agent Workspace instead of from C:\ProgramFiles\Company\Project.

Hope this info is helpful for someone...

Best regards
Michael


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 74 guests